การจดจำใบหน้าห้องสมุด [ปิด]


169

ฉันกำลังมองหาห้องสมุดจดจำใบหน้าฟรีสำหรับโครงการมหาวิทยาลัย ผมไม่ได้มองหาการตรวจหาใบหน้า ฉันกำลังมองหาการรับรู้ที่แท้จริง นั่นหมายถึงการค้นหารูปภาพที่มีใบหน้าหรือไลบรารีที่ระบุซึ่งคำนวณระยะทางระหว่างใบหน้าที่ระบุ

ขณะนี้ฉันใช้OpenCVเพื่อตรวจจับใบหน้าและอัลกอริทึมEigenfaceคร่าวๆเพื่อการจดจำ แต่ฉันคิดว่าควรมีบางสิ่งบางอย่างที่นั่นพร้อมกับประสิทธิภาพที่ดีกว่าอัลกอริทึม Eigenface ที่เขียนขึ้นเอง ฉันไม่ได้พูดถึงความเร็วในการแสดงฉันกำลังมองหาห้องสมุดที่มีผลลัพธ์ที่ดีกว่าวิธี Eigenface อย่างง่าย

ฉันดูจางๆ แต่ดูเหมือนว่าห้องสมุดจะไม่สามารถใช้ซ้ำได้สำหรับแอปพลิเคชันของฉันเอง

ฉันมีความสุขกับห้องสมุดใน Python, Java, C ++, C หรืออะไรทำนองนั้น สิ่งที่ดีที่สุดก็คือถ้ามันสามารถทำงานบนเครื่อง Windows ได้เพราะฉันพึ่งใช้รหัสภายนอกของ Windows เท่านั้นในตอนนี้


1
จำเป็นหรือไม่ที่ต้องมีเหตุผลทางการเมืองหรือในทางปฏิบัติ? หากเป็นโครงการวิจัยที่บริสุทธิ์คุณอาจได้รับใบอนุญาตการศึกษาฟรีจากซัพพลายเออร์ทางการค้ารายใดรายหนึ่ง
Christoffer

2
ผมได้ผลค่อนข้างดีมีเพียง eigenfaces แนวทาง แต่ดูเหมือนว่าใบหน้าที่ดีการตรวจสอบ API ที่มีอิสระที่จะใช้เป็นสิ่งที่ขาดหายไปในขณะนี้
Janusz



4
แม้ว่าจะยอมรับได้อย่างสมบูรณ์ในปี 2009 แต่คำถามคำถามนี้ไม่ได้รับการพิจารณาในหัวข้อ: คำถามที่ขอให้เราแนะนำหรือค้นหาเครื่องมือไลบรารีหรือทรัพยากรนอกไซต์ที่ชื่นชอบนั้นไม่ใช่หัวข้อสำหรับ Stack Overflow ดูเหตุผลนอกหัวข้อที่กำหนดไว้ล่วงหน้าคืออะไรสำหรับ Stack Overflow
JDB ยังคงจดจำโมนิก้า

คำตอบ:


85

นี่คือรายชื่อผู้จำหน่ายเชิงพาณิชย์ที่ให้บริการแพ็คเกจการจดจำใบหน้าซึ่งทำงานบน Windows:

  1. Cybula - ข้อมูลเกี่ยวกับของพวกเขาจดจำใบหน้า SDK นี่เป็น บริษัท ที่ก่อตั้งโดยอาจารย์มหาวิทยาลัยและเว็บไซต์ของพวกเขาดูไม่เป็นมืออาชีพ ไม่มีข้อมูลราคาหรือการสาธิตที่คุณสามารถดาวน์โหลดได้ คุณจะต้องติดต่อพวกเขาเพื่อขอข้อมูลราคา

  2. Neurotechnology - ข้อมูลเกี่ยวกับของพวกเขาจดจำใบหน้า SDK บริษัท นี้มีทั้งขึ้นด้านหน้าข้อมูลการกำหนดราคาเช่นเดียวกับการทดลองใช้ 30 วันที่แท้จริงของ SDK

  3. พิตส์เบิร์กจดจำรูปแบบ - ( ที่ได้มาโดย Google ) ข้อมูลเกี่ยวกับของพวกเขาบนใบหน้าและติดตามการรับรู้ SDK การสาธิตที่พวกเขาให้ช่วยคุณประเมินเทคโนโลยี แต่ไม่ใช่ SDSK คุณจะต้องติดต่อพวกเขาเพื่อขอข้อมูลราคา

  4. Sensible วิสัยทัศน์ - ข้อมูลเกี่ยวกับของพวกเขาSDK เว็บไซต์ของพวกเขาช่วยให้คุณได้รับใบเสนอราคาได้อย่างง่ายดายและคุณยังสามารถสั่งซื้อชุดการประเมินที่จะช่วยคุณประเมินเทคโนโลยีของพวกเขา


5
ขอขอบคุณสำหรับการเชื่อมโยง แต่ในขณะที่ฉันต้องไปหาฟรีห้องสมุด
Janusz

1
มันอาจจะไม่ได้รับการยอมรับใบหน้าต่อ seแต่numenta.comอาจจะเป็นที่สนใจของคุณ
RCIX

7
คุณสามารถเพิ่ม REST API ฟรีในรายการนั้น
Omry Yadan

@ Omry คุณควรเพิ่มเป็นคำตอบหรือแก้ไขสิ่งนี้เพื่อเพิ่มface.com
Scott

face-rec.org/vendorsและโดยทั่วไปface-rec.org
2vision2

54

ปรับปรุง

ตอนนี้ OpenCV 2.4.2 มาพร้อมกับcv :: FaceRecognizerใหม่ โปรดดูเอกสารรายละเอียดที่:

โพสต์ต้นฉบับ

ฉันได้เปิดตัวlibfacerecซึ่งเป็นไลบรารี่จดจำใบหน้าที่ทันสมัยสำหรับ OpenCV C ++ API (ใบอนุญาต BSD) libfacerec ไม่มีการพึ่งพาเพิ่มเติมและใช้วิธี Eigenfaces, วิธี Fisherfaces และฮิสโตแกรมรูปแบบไบนารีท้องถิ่น บางส่วนของห้องสมุดจะรวมอยู่ใน OpenCV 2.4

การแก้ไขล่าสุดของ libfacerec สามารถดูได้ที่:

ไลบรารี่เขียนขึ้นสำหรับ OpenCV 2.3.1 โดยคำนึงถึง OpenCV 2.4 ที่กำลังจะมาดังนั้นฉันไม่สนับสนุน OpenCV เวอร์ชันก่อนหน้า 2.3.1 โครงการนี้มาเป็นโครงการ CMake พร้อม API ที่มีเอกสารครบถ้วนนอกจากนี้ยังมีแบบฝึกหัดเกี่ยวกับการจำแนกเพศ คุณสามารถดูเอกสารในรูปแบบ HTML ได้ที่:

หากคุณต้องการเข้าใจวิธีการทำงานของอัลกอริทึมเหล่านั้นคุณอาจต้องการอ่านคู่มือการจดจำใบหน้า (รวมถึง Python และ GNU Octave / MATLAB ตัวอย่าง):

นอกจากนี้ยังมีการดำเนินการหลามและคู่ของกนู / MATLAB ขั้นตอนวิธีการในการเก็บข้อมูล GitHub ของฉัน โครงการทั้งสองในfacerecยังมีวิธีการตรวจสอบข้ามหลายวิธีสำหรับการประเมินอัลกอริทึม:

สิ่งพิมพ์ที่เกี่ยวข้องคือ:

  • Turk, M. , และ Pentland, A. Eigenfaces เพื่อการจดจำ . วารสารประสาทวิทยาองค์ความรู้ 3 (1991), 71–86
  • Belhumeur, PN, Hespanha, J. และ Kriegman, D. Eigenfaces เทียบกับ Fisherfaces: การรับรู้โดยใช้การฉายเส้นตรงระดับเฉพาะ . ธุรกรรม IEEE เกี่ยวกับการวิเคราะห์รูปแบบและความฉลาดของเครื่องจักร 19, 7 (1997), 711–720
  • Ahonen, T. , Hadid, A. และ Pietikainen, M. การจดจำใบหน้าด้วยรูปแบบไบนารีท้องถิ่น . วิสัยทัศน์คอมพิวเตอร์ - ECCV 2004 (2004), 469–481


19

pam-face-authenticationโมดูล PAM สำหรับการตรวจสอบใบหน้า: แต่จะต้องมีงานเพื่อให้ได้สิ่งที่คุณต้องการ การทดสอบอย่างรวดเร็วแสดงให้เห็นว่าอัตราการรู้จำไม่ดีเท่าของ VeriLook จาก NeuroTechnology

มาลิกเป็นซอฟต์แวร์จดจำใบหน้าโอเพนซอร์ซอีกเครื่องหนึ่งซึ่งใช้ Gabor Wavelet descriptors แต่การอัปเดตล่าสุดไปยังแหล่งข้อมูลนั้นมีอายุ 3 ปี

จากเว็บไซต์: " Malic เป็นซอฟต์แวร์จดจำใบหน้า opensource ซึ่งใช้ gabor wavelet มันเป็นระบบจดจำใบหน้าแบบเรียลไทม์ซึ่งอิงจาก Malib และ CSU Face Identification System (csuFaceIdEval) ระบบประมวลผลภาพของ Malib และ csuFaceIdEval สำหรับใบหน้าแบบเรียลไทม์ การรับรู้ "

นอกจากนี้อาจเป็นที่สนใจ:

gaborboosting : โปรแกรมวิทยาศาสตร์ที่ใช้กับการจดจำใบหน้าด้วย Gabor Wavelet และอัลกอริทึม AdaBoost

ฟีเจอร์ไลบรารี่สกัด - FELibอ้างถึง"คำอธิบายประกอบแบบใบหน้าโดย Transductive Kernel Fisher Discriminant"


13

ฉันคิดว่าEigenfaceที่คุณทำอยู่แล้วเป็นวิธีที่จะไปหากคุณต้องการคำนวณระยะห่างระหว่างใบหน้า คุณอาจจะลองวิธีที่แตกต่างกันเช่นการสนับสนุนเครื่องเวกเตอร์หรือซ่อนมาร์คอฟรุ่น ผมพบว่าหน้าเว็บที่แสดงรายการของขั้นตอนวิธีการที่สำคัญที่สามารถนำมาใช้สำหรับการจดจำใบหน้า: Face Recognition โฮมเพจ

นอกจากนี้เมื่อคุณพูดว่า "ประสิทธิภาพที่ดีขึ้น" คุณหมายถึงความเร็วหรือความแม่นยำหรือไม่? คุณกำลังมีปัญหาอะไร ข้อมูลมีความแตกต่างกันอย่างไร พวกเขาส่วนใหญ่หน้าหน้าผากหรือพวกเขารวมถึงโปรไฟล์?


5
ด้วยประสิทธิภาพที่ฉันตรวจสอบได้อย่างแม่นยำ Eigenfaces เป็นสิ่งที่ดี แต่สิ่งที่ฉันกำลังมองหาอยู่คือแพคเกจชั้นวางของที่พร้อมรับรู้ใบหน้าเพราะฉันไม่ต้องการที่จะพลิกโฉมวงล้อใหม่และฉันไม่มีเวลา
Janusz


7

คุณควรดูที่http://libccv.org/

มันค่อนข้างใหม่ แต่ให้ API โอเพนซอร์สระดับสูงฟรีสำหรับการตรวจจับใบหน้า

(... และฉันกล้าพูดว่ามันช่างน่าอัศจรรย์จริงๆ)

แก้ไข: น่าสังเกตว่านี่เป็นหนึ่งในไม่กี่ libs ที่ไม่ได้ขึ้นอยู่กับ opencv และสำหรับ kicks นี่เป็นสำเนาของรหัสสำหรับการตรวจจับใบหน้านอกหน้าเอกสารเพื่อให้คุณทราบว่าเกี่ยวข้องกับอะไร:

#include <ccv.h>
int main(int argc, char** argv)
{
    ccv_dense_matrix_t* image = 0;
    ccv_read(argv[1], &image, CCV_IO_GRAY | CCV_IO_ANY_FILE);
    ccv_bbf_classifier_cascade_t* cascade = ccv_load_bbf_classifier_cascade(argv[2]);         ccv_bbf_params_t params = { .interval = 8, .min_neighbors = 2, .accurate = 1, .flags = 0, .size = ccv_size(24, 24) };
    ccv_array_t* faces = ccv_bbf_detect_objects(image, &cascade, 1, params);
    int i;
    for (i = 0; i < faces->rnum; i++)
    {
        ccv_comp_t* face = (ccv_comp_t*)ccv_array_get(faces, i);
        printf("%d %d %d %d\n", face->rect.x, face->rect.y, face->rect.width, face->rect.y);
    }
    ccv_array_free(faces);
    ccv_bbf_classifier_cascade_free(cascade);
    ccv_matrix_free(image);
    return 0;
} 

5

ฉันรู้ว่ามันมีมานานแล้ว แต่สำหรับคนอื่นที่สนใจมีโครงการFaintซึ่งรวมเอาฟีเจอร์เหล่านี้มากมาย (การตรวจจับการจดจำและอื่น ๆ ) เข้าไว้ในแพ็คเกจซอฟต์แวร์ที่ดี


4

เรากำลังใช้OpenCV แต่ก็มีจำนวนมากของสิ่งที่ไม่ใช่การจดจำใบหน้าในที่นั่นด้วย แต่มั่นใจก็ไม่ทำการจดจำใบหน้า


2
ฉันคิดว่าไม่มีอัลกอริทึมโดยตรงใน OpenCV สำหรับการจดจำใบหน้า ตรวจจับใบหน้าจากห้องสมุด OpenCV ทำงานได้ดี
Janusz

3
ใช่คุณพูดถูก. ฉันสับสนการจดจำใบหน้าและการตรวจจับใบหน้า
Paul J. Lucas

เช่นเดียวกับบันทึกด้านข้างมี cv :: FaceRecognizer ทันทีซึ่งสามารถใช้สำหรับการจดจำ
huesforalice

1

คุณสามารถลองเปิดไลบรารี MVG ได้ซึ่งสามารถใช้สำหรับหลายอินเตอร์เฟสได้เช่นกัน


0

ขั้นตอนต่อไปคือ FisherFaces ลองใช้และตรวจสอบว่าใช้งานได้กับคุณหรือไม่ นี่เป็นการเปรียบเทียบที่ดี


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.