人臉檢測識別一直是圖像算法領域一個主流話題。
前年SeetaFace開源了人臉識別引擎,一度成為熱門話題。
雖然后來SeetaFace又放出來 2.0版本,但是,我說但是。。。
沒有訓練代碼,想要自己訓練一下模型那可就犯難了。
雖然可以閱讀源碼,從前向傳播的角度,反過來實現訓練代碼,
但是誰有那個閑功夫和時間,去折騰這個呢?
有的時候還是要站在巨人的肩膀上,你才能看得更遠。
而SeetaFace不算巨人,只是當年風口上的豬罷了。
前年,為了做一個人臉項目,也是看遍了網上各種項目。
林林總總,各有優劣。
不多做評價,很多東西還是要具體實操,實戰才能見真知。
有一段時間,用SeetaFace的人臉檢測來做一些小的演示demo,
也花了一點小時間去優化它的算法。
不過很明顯我只是把他當成玩具看待。
畢竟不能自己訓練模型,這是很大的詬病。
直到后來深度學習大放異彩,印象最深刻莫過于MTCNN。
Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Neural Networks
大合照下,人臉圈出來很準確,壯觀了去,這是第一印象。
上圖,大家感受一下。
CNN的有三個網絡結構。
Stage1: Proposal Net
![MTCNN人臉檢測的詳細介紹及完整C++代碼你能學會嗎?](http://file.elecfans.com/web1/M00/56/CA/o4YBAFtC0UqAbY2OAACilD_cHAs840.jpg)
Stage2: Refine Net
![MTCNN人臉檢測的詳細介紹及完整C++代碼你能學會嗎?](http://file.elecfans.com/web1/M00/56/CA/o4YBAFtC0UqAVUW8AACuWHsQHf0382.jpg)
Stage3: Output Net
![MTCNN人臉檢測的詳細介紹及完整C++代碼你能學會嗎?](http://file.elecfans.com/web1/M00/56/CA/o4YBAFtC0UuAcPfsAACKOPr-X8w830.jpg)
具體算法思路就不展開了。
我對MTCNN感興趣的點在于,
MTCNN的思路可以拓展到各種物體檢測和識別方向。
也許唯一缺少的就是打標好的數據,
而標注五個點,足夠用于適配大多數物體了。
符合小而美的理念,這個是我比較推崇的。
所以MTCNN是一個很值得品味的算法。
github上也有不少MTCNN的實現和資源。
基于mxnet基于caffe基于ncnn等等。。。
很明顯,mxnet和 caffe不符合小而美的理念。
果斷拋棄了。
ncnn有點肥大,不合我心。
所以,我動了殺氣。。
移除NCNN與mtcnn無關的層,
梳理ncnn的一些邏輯代碼。
簡單做了一些適配和優化。
砍掉一些邊邊角角。
不依賴opencv等第三方庫。
編寫示例代碼完成后,還有不少工作要做,
不過第一步感覺已經符合我的小小預期。
完整示例代碼:
#include "mtcnn.h"#include "browse.h"#define USE_SHELL_OPEN#ifndef nullptr#define nullptr 0#endif#if defined(_MSC_VER)#define _CRT_SECURE_NO_WARNINGS#include #else#include#endif#define STB_IMAGE_STATIC#define STB_IMAGE_IMPLEMENTATION#include"stb_image.h"http://ref:https://github.com/nothings/stb/blob/master/stb_image.h#define TJE_IMPLEMENTATION#include "tiny_jpeg.h"http://ref:https://github.com/serge-rgb/TinyJPEG/blob/master/tiny_jpeg.h#include #include "timing.h"char saveFile[1024];unsignedchar *loadImage(const char *filename, int *Width, int *Height, int *Channels) { return stbi_load(filename, Width, Height, Channels, 0); }void saveImage(const char *filename, int Width, int Height, int Channels, unsigned char *Output) { memcpy(saveFile + strlen(saveFile), filename, strlen(filename)); *(saveFile + strlen(saveFile) + 1) = 0; //保存為jpg if (!tje_encode_to_file(saveFile, Width, Height, Channels, true, Output)) { fprintf(stderr, "save JPEG fail.
"); return; }#ifdef USE_SHELL_OPEN browse(saveFile);#endif}void splitpath(const char *path, char *drv, char *dir, char *name, char *ext) { const char *end; const char *p; const char *s; if (path[0] && path[1] == ':') { if (drv) { *drv++ = *path++; *drv++ = *path++; *drv = '
主站蜘蛛池模板:
wwwxx在线观看|
免费看一级大片
|
天天操夜夜噜
|
伊人久久综合网站
|
久久亚洲国产精品五月天
|
国模一区二区三区私啪啪
|
国产拍拍拍免费视频网站
|
日本不卡在线视频高清免费
|
停停五月天
|
www.欧美成
|
亚洲成a人片777777久久
|
911色_911色sss在线观看
|
香蕉久久精品
|
伦理一区二区三区
|
dy天堂|
夜色成人网
|
模特精品视频一区
|
欧美国产黄色
|
四虎影在线永久免费观看
|
久久影院午夜伦手机不四虎卡
|
女人张开腿让男人桶视频免费大全
|
高清欧美一级在线观看
|
色综合久久久久综合99
|
777色狠狠一区二区三区香蕉
|
亚洲综合校园春色
|
一区二区三区影院
|
狠狠色噜噜狠狠狠狠
|
天天上天天干
|
亚洲第一精品夜夜躁人人爽
|
日本动漫在线看
|
夜夜骑天天干
|
久久夜色精品国产噜噜小说
|
午夜久久免影院欧洲
|
国产一级特黄高清免费大片
|
成熟妇女毛耸耸性视频
|
二级特黄绝大片免费视频大片
|
国内精品久久影视免费
|
二十年等一人小说在线观看
|
天天摸天天躁天天添天天爽
|
欧美1314www伊人久久香网
|
国产在线色
|