My Flutter Package

A Flutter package for image processing that detects faces, estimates gender, and classifies NSFW (Not Safe for Work) content. This package uses advanced algorithms to analyze images and extract relevant data for face detection, demographic estimation, and content filtering.

Features

  • Face Detection: Detects faces in images and returns their locations.
  • Gender Estimation: Estimates the gender of detected faces.
  • NSFW Content Classification: Classifies images as NSFW or safe for work.

Installation

To use this package, add it to your pubspec.yaml file:

dependencies:
  photo_analyzer: 0.2.4
  final _photoAnalyzerPlugin = PhotoAnalyzer();

  Future<void> initilizeModel() async{
    await _photoAnalyzerPlugin.initilizeModel(threshold: 0.5);
  }

  Future<void> detectNSFW() async {
    try {
      final ByteData data = await rootBundle.load('assets/nsfw.jpeg');
      final Uint8List imageData = data.buffer.asUint8List();
      final result = await _photoAnalyzerPlugin.nsfwDetection(image: imageData);
      debugPrint(result);
    } on PlatformException catch (e) {
      debugPrint(e.toString());
    }
  }

  Future<void> detectFace() async {
    try {
      final ByteData data = await rootBundle.load('assets/bikini.jpeg');
      final Uint8List imageData = data.buffer.asUint8List();
      final result = await _photoAnalyzerPlugin.detectFaces(image: imageData);
      setState(() {
        bytesList = result.cast<Uint8List>();
      });
    } on PlatformException catch (e) {
      debugPrint(e.toString());
    }
  }

  Future<void> detectGender() async {
    try {
      final ByteData data = await rootBundle.load('assets/male.jpg');
      final Uint8List imageData = data.buffer.asUint8List();
      final result =
          await _photoAnalyzerPlugin.genderPrediction(image: imageData);

      debugPrint(result);
    } on PlatformException catch (e) {
      debugPrint(e.toString());
    }
  }


# add this line:
$iOSVersion = '15.5' 


target 'Runner' do
  use_frameworks!
  # add this line:
  pod 'GoogleMLKit/FaceDetection', '7.0.0'
  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  target 'RunnerTests' do
    inherit! :search_paths
  end
end




post_install do |installer|
  # add these lines:
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=*]"] = "armv7"
    config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
  end

  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)

    # add these lines:
    target.build_configurations.each do |config|
      if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
      end
    end
  end
end

Libraries

photo_analyzer