- パッケージのインストール: Flutterで顔検出を行うためには、face_detectionパッケージを使用します。pubspec.yamlファイルに以下の依存関係を追加してインストールします。
dependencies:
face_detection: ^0.5.1
- 画像から顔を検出するコード例: 以下のコードは、カメラロールから画像を選択し、その中から顔を検出する例です。
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:face_detection/face_detection.dart';
class FaceDetectionScreen extends StatefulWidget {
@override
_FaceDetectionScreenState createState() => _FaceDetectionScreenState();
}
class _FaceDetectionScreenState extends State<FaceDetectionScreen> {
List<Face> _faces = [];
Future<void> _detectFaces() async {
final picker = ImagePicker();
final image = await picker.getImage(source: ImageSource.gallery);
if (image != null) {
final faces = await FaceDetection.detectFaces(image.path);
setState(() {
_faces = faces;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Face Detection'),
),
body: Column(
children: [
ElevatedButton(
onPressed: _detectFaces,
child: Text('Select Image'),
),
Expanded(
child: ListView.builder(
itemCount: _faces.length,
itemBuilder: (context, index) {
final face = _faces[index];
return ListTile(
leading: Image.file(File(face.path)),
title: Text('Face ${index + 1}'),
);
},
),
),
],
),
);
}
}
- 追加の機能と改善: 上記のコードでは、画像から単純に顔を検出してリストに表示していますが、さまざまな追加機能や改善点が考えられます。たとえば、検出された顔の位置や特徴をハイライトするために枠線を描画したり、顔の表情や年齢を推定したりすることも可能です。
また、face_detectionパッケージ以外にも、Firebase ML KitやOpenCVなどのライブラリを使用することで、より高度な顔検出機能を実装することもできます。
以上が、Flutterを使用して顔検出を実装する方法の一例です。これを参考にして、自身のプロジェクトに適した方法を見つけてみてください。