我一直在实施Viola-Jones的人脸检测算法.该技术依赖于在图像内放置24×24像素的子帧,并且随后在每个位置中将矩形特征放置在每个位置中,并且每种尺寸都可能.
这些特征可以包括两个,三个或四个矩形.提供以下示例.

他们声称详尽的集合超过180k(第2部分):
鉴于探测器的基本分辨率为24x24,详尽的矩形特征集非常大,超过180,000.请注意,与Haar基础不同,矩形特征集是过度完整的.
本文未明确说明以下陈述,因此它们是我的假设:
基于这些假设,我计算了详尽的集合:
const int frameSize = 24;
const int features = 5;
// All five feature types:
const int feature[features][2] = {{2,1}, {1,2}, {3,1}, {1,3}, {2,2}};
int count = 0;
// Each feature:
for (int i = 0; i < features; i++) {
int sizeX = feature[i][0];
int sizeY = feature[i][1];
// Each position:
for (int x = 0; x <= …Run Code Online (Sandbox Code Playgroud) algorithm image-processing computer-vision face-detection viola-jones
我们可以使用Javascript中的OpenCV吗?有没有这样的实施?
是否有任何JS库可用于检测图片或视频中的面部元素?
javascript html5 opencv artificial-intelligence face-detection
我一直在OpenCV(开源计算机视觉库)中进行面部检测实验,发现可以使用Haar级联来检测面部,因为其中有几个提供了OpenCV.但是,我注意到还有几个LBP级联.根据OpenCV人脸检测文档,经过一些研究,我发现LBP代表局部二进制模式,也可以用于人脸检测.
我想知道的是哪个更好?哪一个表现得更快,哪一个更准确?似乎LBP表现得更快,但我也不是100%肯定.谢谢.
我正在尝试找到一个可以检测我的照片中的脸部的应用程序,使检测到的脸部居中并裁剪720 x 720像素的照片.编辑我计划做的数百张图片是非常耗时和细致的.
我尝试过使用这里提到的python opencv做这个,但我认为它已经过时了.我也试过使用它,但它也在我的系统中给了我一个错误.还尝试使用GIMP的面部检测插件,但它是为GIMP 2.6设计的,但我定期使用2.8.我也尝试过在ultrahigh博客上发布的内容,但它已经过时了(因为我使用的是Ubuntu的精确衍生版本,而博客帖子在它仍然是Hardy的时候又回来了).也尝试使用Phatch,但没有面部检测,所以一些裁剪的图片的脸被切断.
我已经尝试了以上所有这些并且浪费了半天时间试图让上述任何一项做我需要做的事情.
你们有没有建议实现我拥有的大约800张照片的目标.
我的操作系统是Linux Mint 13 MATE.
注意:我打算再添加2个链接但是stackexchange阻止我发布两个更多的链接,因为我还没有太多的声誉.
如何像"相机"那样实时进行人脸检测?
我注意到,AVCaptureStillImageOutput为10.0后弃用,因此我用 AVCapturePhotoOutput代替.但是,我发现我为面部检测保存的图像并不那么令人满意?有任何想法吗?
UPDATE
在尝试了@Shravya Boggarapu之后提到.目前,我AVCaptureMetadataOutput用来检测脸部没有CIFaceDetector.它按预期工作.然而,当我试图画出脸部的边界时,似乎错位了.任何的想法?
let metaDataOutput = AVCaptureMetadataOutput()
captureSession.sessionPreset = AVCaptureSessionPresetPhoto
let backCamera = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .back)
do {
let input = try AVCaptureDeviceInput(device: backCamera)
if (captureSession.canAddInput(input)) {
captureSession.addInput(input)
// MetadataOutput instead
if(captureSession.canAddOutput(metaDataOutput)) {
captureSession.addOutput(metaDataOutput)
metaDataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
metaDataOutput.metadataObjectTypes = [AVMetadataObjectTypeFace]
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer?.frame = cameraView.bounds
previewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
cameraView.layer.addSublayer(previewLayer!)
captureSession.startRunning()
}
}
} catch {
print(error.localizedDescription)
}
Run Code Online (Sandbox Code Playgroud)
和
extension CameraViewController: AVCaptureMetadataOutputObjectsDelegate {
func captureOutput(_ captureOutput: …Run Code Online (Sandbox Code Playgroud) 我正在Android上实现一个人脸跟踪器,作为一个文献研究,想要确定Android的FaceDetector的基础技术.
简单地说:我想了解android.media.FaceDetector分类器的工作原理.
一个简短的谷歌搜索没有提供任何信息,所以我想我会看看代码.
通过查看Java源代码,FaceDetector.java没有太多需要学习的内容:FaceDetector只是提供图像尺寸和面数的类,然后返回一个面数组.
Android源代码包含此类的JNI代码.我跟着函数调用,在那里,简化为基本要素,我学到了:
FaceFinder.c:75bbs_MemSeg_alloc返回一个btk_HFaceFinder对象(其中包含实际查找面的函数),基本上将其复制到initialize()()中初始化hsdkA->contextE.memTblE.espArrE的原始btk_HSDK对象的数组中FaceDetector_jni.cpp:145.btk_SDK_create()btk_HSDK,但我无处可寻找具体的实例,sdk->contextE.memTblE.espArrE[0]其中包含了魔法.我已经发现,是一个小线索:JNI代码引用FFTEm库,我无法找到的源代码.然而,从它的外观来看,FFT是快速傅立叶变换,它可能与预训练的神经网络一起使用.我能找到的唯一符合这一理论的文献是Ben-Yacoub等人的论文.
我甚至不知道自己是否走上了正确的道路,所以任何建议都无疑会有所帮助.
编辑:我为任何可以提供任何见解的人添加了+100赏金.
我是面部检测的新生.这些天我尝试编译用于面部检测的OpenCV2.1代码.我发现前面检测有大约4个级联文件,分别是"haarcascade_frontalface_alt.xml","haarcascade_frontalface_alt_tree.xml","haarcascade_frontalface_alt2.xml"和"haarcascade_frontalface_default.xml"
我没有找到任何文件来描述它们之间的区别,哪个更喜欢面部检测任务?
是否有用于检测在图像平面中旋转的面的库?或者是否有某种方法可以使用级联来进行直接面部检测并使用opencv来执行此操作?
我有一个非常大的照片库,里面有成千上万的相似的人物,物品,地点,东西.照片中的大多数人都有自己的用户帐户和头像照片来匹配.根据每张照片可用的附加数据,还有可能在照片中的人的逻辑短列表.我允许用户使用他们的朋友和他们认识的人标记照片,但自动化过程会更好.
我使用了face.com上的照片标记器/取景器与Facebook照片集成,而用于个人相册的Google Picasa照片标记器也做同样的事情,正是我想要做的.
是否有PHP脚本,用于Google Picasa的API,face.com或其他识别服务或任何其他开源项目,提供服务器端面部识别和/或按照相似性对照片进行分组?
示例:正如您所看到的,各种照片共享站点都提供了该功能,但有没有为我自己的服务器上存储的图像提供API或者足以链接到我自己的图库和标记系统的东西?
关于camera2人脸识别机制的信息不足.我使用了Google的Camera2示例: android-Camera2Basic
我将人脸识别模式设置为FULL.
mPreviewRequestBuilder.set(CaptureRequest.STATISTICS_FACE_DETECT_MODE,
CameraMetadata.STATISTICS_FACE_DETECT_MODE_FULL);
Run Code Online (Sandbox Code Playgroud)
我也查了一下
STATISTICS_INFO_MAX_FACE_COUNT并且STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES:
int max_count = characteristics.get(
CameraCharacteristics.STATISTICS_INFO_MAX_FACE_COUNT);
int modes [] = characteristics.get(
CameraCharacteristics.STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES);
Run Code Online (Sandbox Code Playgroud)
输出:maxCount:5,模式:[0,2]
我的CaptureCallback:
private CameraCaptureSession.CaptureCallback mCaptureCallback
= new CameraCaptureSession.CaptureCallback() {
private void process(CaptureResult result) {
Integer mode = result.get(CaptureResult.STATISTICS_FACE_DETECT_MODE);
Face [] faces = result.get(CaptureResult.STATISTICS_FACES);
if(faces != null && mode != null)
Log.e("tag", "faces : " + faces.length + " , mode : " + mode );
}
@Override
public void onCaptureProgressed(CameraCaptureSession session, CaptureRequest request,
CaptureResult partialResult) {
process(partialResult); …Run Code Online (Sandbox Code Playgroud) face-detection ×10
opencv ×5
android ×2
viola-jones ×2
algorithm ×1
avfoundation ×1
cascade ×1
crop ×1
fft ×1
haar-wavelet ×1
html5 ×1
ios ×1
javascript ×1
linux ×1
php ×1
python ×1
swift ×1
tagging ×1