My Opera is closing 1st of March

QUANG HOANG'S BLOG

Welcome to everybody !

Xác định khuôn mặt người trong ảnh kỹ thuật số

, , ,

1. Giới thiệu

Hơn một thập kỷ qua, có rất nhiều công trình nghiên cứu về bài toán xác định khuôn mặt người từ ảnh đen trắng, ảnh xám, đến ảnh màu như ngày nay. Các nghiên cứu đi từ bài toán đơn giản là ảnh chỉ chứa một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thế thẳng đứng, cho đến ảnh màu với nhiều khuôn mặt người trong cùng ảnh, khuôn mặt có quay một góc nhỏ, hay bị che khuất một phần, và với ảnh nền của ảnh phức tạp (ảnh chụp ngoài thiên nhiên) nhằm đáp ứng nhu cầu thật sự cần thiết của con người.

Bài toán xác định khuôn mặt người (Face detection) là một kỹ thuật máy tính để xác định các vị trí và các kích thước của khuôn mặt trong ảnh bất kỳ (ảnh kỹ thuật số). Kỹ thuật này nhận biết các đặt trưng khuôn mặt và bỏ qua những thứ khác như: toàn nhà, cây cối, cơ thể...

Một số ứng dụng của bài toán xác định khuôn mặt là: hệ thống tương tác giữa người và máy (điều kiển máy tính qua các cử động của khuôn mặt), hệ thống nhận dạng người (giúp cho các cơ quan an ninh quản lý con người), hệ thống quan sát theo dõi, hệ thống quản lý việc ra vào cho các cơ quan và công ty, hệ thống kiểm tra người lái xe có ngủ gật hay không, hệ thống phân tích cảm xúc trên khuôn mặt, và hệ thống nhận dạng khuôn mặt cho các máy ảnh kỹ thuật số...

Hiện nay có rất nhiều phương pháp nhận dạng khuôn mặt người, dựa vào các tính chất của các phương pháp, ta có thể chia ra làm bốn hướng tiếp cận chính như sau: Hướng tiếp cận dựa trên tri thức: mã hoá hiểu biết của con người về các loại khuôn mặt và tạo ra các tập luật để xác định khuôn mặt. Hướng tiếp cận dựa trên đặt tả không thay đổi: mục tiêu các thuật toán tìm ra các đặt trưng mô tả cấu trúc khuôn mặt người (các đặt trưng không thay đổi với tư thế, vị trí đặt thiết bị thu hình, độ sáng tối thay đối...). Hướng tiếp cận dựa trên so khớp mẫu: dùng các mẫu chuẩn hay các đặt trưng của khuôn mặt người. Hướng tiếp cận dựa trên diện mạo: phương pháp học từ một tập ảnh huấn luyện mẫu để xác định khuôn mặt người.

Chương trình xác định vị trí khuôn mặt người trong bài viết này sử dụng hướng tiếp cận dựa trên mạo, sử dụng bộ phân loại mạnh AdaBoost là sự kết hợp của các bộ phân loại yếu dựa trên các đặt trưng Haar-like để xác định khuôn mặt. Mã nguồn được dựa trên thư viện mã nguồn mở OpenCV của Intel để cài đặt.

2. Cơ sở lý thuyết
2.1. Đặc trưng Haar-like

Do Viola và Jones công bố, gồm 4 đặc trưng cơ bản để xác định khuôn mặt người. Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình chữ nhật "trắng" hay "đen" như trong hình sau:


Hình 1: 4 đặt trưng Haar-like cơ bản

Để sử dụng các đặt trưng này vào việc xác định khuôn mặt người, 4 đặt trưng Haar-like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:


1. Đặc trưng cạnh (edge features):





2. Đặc trưng đường (line features):





3. Đặc trưng xung quanh tâm (center-surround features):




Hình 2: Các đặc trưng mở rộng của các đặc trưng Haar-like cơ sở


Dùng các đặc trưng trên, ta có thể tính được giá trị của đặc trưng Haar-like là sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau:

f(x) = Tổngvùng đen(các mức xám của pixel) - Tổngvùng trắng(các mức xám của pixel)

Sử dụng giá trị này, so sánh với các giá trị của các giá trị pixel thô, các đặc trưng Haar-like có thể tăng/giảm sự thay đổi in-class/out-of-class (bên trong hay bên ngoài lớp khuôn mặt người), do đó sẽ làm cho bộ phân loại dễ hơn.

Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh. Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time. Do đó Viola và Jones đưa ra một khái niệm gọi là Integral Image, là một mảng 2 chiều với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó. Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh.



Hình 3: Cách tính Integral Image của ảnh

Sau khi đã tính được Integral Image, việc tính tổng các giá trị mức xám của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau:

Giả sử ta cần tính tổng các giá trị mức xám của vùng D như trong hình 4, ta có thể tính như sau:

D = A + B + C + D – (A+B) – (A+C) + A

Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm P1. Vậy ta có thể viết lại biểu thức tính D ở trên như sau:



Hình 4: Ví dụ cách tính nhanh các giá trị mức xám của vùng D trên ảnh


Tiếp theo, để chọn các đặc trưng Haar-like dùng cho việc thiết lập ngưỡng, Viola và Jones sử dụng một phương pháp máy học được gọi là AdaBoost. AdaBoost sẽ kết hợp các bộ phân loại yếu để tạo thành một bộ phân loại mạnh. Với bộ phân loại yếu chỉ cho ra câu trả lời chính xác chỉ hơn viện đoán một cách ngẫn nhiên một chút, còn bộ phân loại mạnh có thể đưa ra câu trả lời chính xác trên 60%.


2.2. AdaBoost
AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận boosting được Freund và Schapire đưa ra vào năm 1995 [2]. Adaboost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifiers để hình thành một strong classifier.

Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng số (weight) để đánh dấu các mẫu khó nhận dạng. Trong quá trình huấn luyện, cứ mỗi weak classifiers được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn bị cho việc xây dựng weak classifier kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifier vừa xây dựng. Bằng cách này weak classifer sau có thể tập trung vào các mẫu mà các weak classifiers trước nó làm chưa tốt. Sau cùng, các weak classifers sẽ được kết hợp tùy theo mức độ tốt của chúng để tạo nên strong classifier.

Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trưng Haar-like theo mô hình phân tầng (cascade) như sau:


Hình 5: Mô hình phân tần kết hợp các bộ phân loại yếu để xác định khôn mặt


Trong đó, hk là các bộ phân loại yếu, được biểu diễn như sau:



x: cửa sổ con cần xét
Ok: ngưỡng (O = teta)
fk: giá trị của đặc trưng Haar-like
pk: hệ số quyết định chiều của phương trình


AdaBoost sẽ kết hợp các bộ phân loại yếu thành bộ phân loại mạnh như sau:
H(x) = sign(a1h1(x) +a2h2(x) + ... + anhn(x)) (a = alpha)
Với: at >= 0 là hệ số chuẩn hoá cho các bộ phân loại yếu



Hình 6: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh


3. Hệ thống xác định vị trí khuôn mặt người



Hình 7: Hệ thống xác định vị trí khuôn mặt người (Face detection system)

Như trong hình trên, từ ảnh gốc ban đầu, ta sẽ được tính Integral Image, là mảng 2 chiều với phần tử (x, y) sẽ được tính bằng tổng của các phần tử (x', y') với x' < x và y' < y, mục đích là để tính nhanh tổng của các giá trị mức xám của một vùng hình chữ nhật bất kỳ trên ảnh gốc. Các vùng ảnh con này sẽ được đưa qua các hàm Haar cơ bản để ước lượng đặc trưng, kết quả ước lượng sẽ được đưa qua bộ điều chỉnh AdaBoost để loại bỏ nhanh các đặc trưng không có khả năng là đặc trưng của khuôn mặt người. Chỉ có một tập nhỏ các đặc trưng mà bộ điều chỉnh AdaBoost cho là có khả năng là đặc trưng của khuôn mặt người mới được chuyển sang cho bộ quyết định kết quả (là tập các bộ phân loại yếu có cấu trúc như trong hình 5). Bộ quyết định sẽ tổng hợp kết quả là khuôn mặt người nếu kết quả của các bộ phân loại yếu trả về là khuôn mặt người.

Mỗi bộ phân loại yếu sẽ quyết định kết quả cho một đặc trưng Haar-like, được xác định ngưỡng đủ nhỏ sao cho có thể vượt được tất cả các bộ dữ liệu mẫu trong tập dữ liệu huấn luyện (số lượng ảnh khuôn mặt trong tập huấn luyện có thể rất lớn). Trong quá trình xác định khuôn mặt người, mỗi vùng ảnh con sẽ được kiểm tra với các đặc trưng trong chuỗi các đặc trưng Haar-like, nếu có một đặc trưng Haar-like nào cho ra kết quả là khuôn mặt người thì các đặc trưng khác không cần xét nữa. Thứ tự xét các đặc trưng trong chuỗi các đặc trưng Haar-like sẽ được dựa vào trọng số (weight) của đặc trưng đó do AdaBoost quyết định dựa vào số lần và thứ tự xuất hiện của các đặc trưng Haar-like.


4. Cài đặt và demo chương trình

Chương trình được viết trên Microsoft Visual C++ 2005, sử dụng thư viện mã nguồn mở OpenCV.

Hình 8: Các vị trí các khuôn mặt người cho ảnh ở hình 9


Hình 9: Kết quả xác định vị trí khôn mặt người


5. Tài liệu tham khảo
[1] Tổng quan các phương pháp xác định khuôn mặt người – Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc Doãn.
[2] Seeing with OpenCV - Robin Hewitt.
[3] Rapid Object Detection using a boosted Cascade of Simple Features

Hoàng Đăng Quang
Download: Source code

Lập trình sưVài đức tính cần thiết cho nghiên cứu khoa học

Comments

Đặng Thanh Nghịdangnghi Friday, November 7, 2008 3:22:50 PM

Chào bạn!
Mình đang làm về nhận dạng. Load souce code của bạn về chạy thử nhưng ko đc. Thiếu header file cv.h.
Bạn có thể up lên luôn đc ko?

Quang Hoanghodawa Saturday, November 8, 2008 3:19:51 PM

bạn phải cài opencv moi chạy được source code đó

Unregistered user Monday, November 24, 2008 5:44:37 AM

guest writes: Ban co the xem huong dan cai dat Opencv o day http://vn.myblog.yahoo.com/vnntb/article?mid=67

Unregistered user Sunday, December 27, 2009 2:39:12 PM

Phong writes: hi Q, Mình đó download src này về máy, nhưng chạy nó báo lỗi (fatal error C1083: Cannot open include file: 'cv.h'). Mình đã cài OpenCV rồi, nhưng vẫn bị báo lỗi đó. Q có cách nào chỉ giúp mình với. Thanks

Quang Hoanghodawa Thursday, December 31, 2009 6:48:31 AM

chắc bạn chưa cài opencv hay đã cài rồi nhưng chưa setup môi trường cho visual C. Bạn thử setup theo link sau http://opencv.willowgarage.com/wiki/VisualC%2B%2B
và thử viết 1 ct đơn giản sử dụng OpenCV xem nó có chạy đươc kô

Unregistered user Sunday, January 3, 2010 8:47:13 AM

Anonymous writes: Mình đã cài openCV rồi và đã chạy 1 số ứng dụng ok rồi. Khi mình chạy source code của bạn không báo lỗi nhưng nó chạy xong rồi tắt luôn, không dừng lại để cho xem kết quả bạn à. Mình đã cho ảnh đầu vào ở dòng code: char *WindowName = "x.jpg"; - Bạn giải thích giùm mình với, cảm ơn bạn

Unregistered user Sunday, January 3, 2010 9:16:14 AM

thinh writes: mình dùng VS 2008 có chạy được code của bạn không vậy?

Unregistered user Saturday, January 30, 2010 3:39:38 AM

nvhuan writes: Khi dùng vs 2008, source sẽ được chuyển sang định dạng 2008, chạy được bình thường, nếu ngược lại thì không được!

Unregistered user Saturday, January 30, 2010 4:22:53 PM

Son writes: Chào anh Quang, em mới tham gia vào lĩnh vực này nhưng lại mù tịt về lập trình C. Em đã có học qua về C cơ bản, OOP, nhưng quả thực để sử dụng MFC viết một ứng dụng nhận dạng khuôn mặt là quá khó với em lúc này. Anh có thể giới thiệu cho em vài cuốn sách về sử dụng MFC có liên quan đến nhận dạng khuôn mặt không. Em đã đọc qua cuốn "Programming Windows with MFC, 2nd Edition" của Jeff Prosise nhưng cảm thấy kiến thức trong sách đã hơi cũ (viết năm 1999) hơn nữa lại không có sử dụng thư viên MFC trong lĩnh vực nhận dạng khuôn mặt. Mong anh chỉ giúp em, em cần tự học lập trình để có thể làm việc cho Giáo sư, em còn đang theo học mà hiện giờ em không kiếm được sách nào hay. Cám ơn anh trước!

Unregistered user Wednesday, February 24, 2010 3:33:50 AM

tran van thuong pm0601 writes: thua thay! cho em hoi mot van de a: em cũng đang tìm hiểu về opencv(sử dụng version 2.0 trên vsc++ 2008) để tìm ảnh dựa vào hình dạng. Ví dụ, khi mình input 1 ảnh ngôi nhà hình chóp vào thì output ra là những ảnh mà trong đó có hình chóp. Thuật toán dò biên tìm ra các biên nhưng e kg tìm ra được cách so sánh. Xin thầy cho e ý tưởng hoặc có cách nào khác kg? cám ơn thầy. ps: nếu thầy có làm qua rồi, thầy có thể cho e biết bước làm như thế nào? e cám ơn thầy. email của e là: vanthuong420@yahoo.com.

Quang Hoanghodawa Friday, February 26, 2010 4:04:28 AM

@Sơn: nếu bạn sử dụng OpenCV thì ko cần xem về lập trình MFC cũng được. MFC chi giúp đơn giản việc tạo giao diện giao tiếp với người dùng là chính, nếu chỉ quan tâm đến việc xử lý ảnh mình nghĩ bạn ko cần nghiên cứu MFC làm gì, chỉ cần kiến thức về C vững là được.

@Thương: Theo cách của bạn, mình nghĩ rất khó cho ra kết quả có độ chính xác cao được, vì có nhiều hình có đg biên (edge) giống nhau nhưng không giống nhau hay 2 hình giống nhau nhưng đường biên lại khác nhau nhiều. Nhưng nếu bạn vẫn thích làm theo phương pháp này, theo mình để so sánh bạn có thử dùng các phương pháp máy học xem sao, để dùng được pp này bạn phải rút được các vector đặc trưng cho mỗi đường biên của ảnh và dùng các vector đặc trưng này để xác định ảnh mới đưa vào có là ảnh cần tìm hay ko. Thông thường mình thấy ng ta làm là ban đầu phân vùng ảnh, sau đó tìm trong các phân vùng xem có object cần tìm hay không. Về pp nhận dạng object, có rất nhiều pp, bạn thử search trên google (object recognition survey) thì sẽ thấy ngay. Chúc bạn thành công.

Unregistered user Saturday, March 6, 2010 3:57:58 PM

Son writes: Cám ơn anh Quang nhiều, em sẽ tìm hiểu sử dụng OpenCV

Unregistered user Wednesday, March 24, 2010 7:46:45 AM

Binh Nguyen writes: Chào anh, Tôi là Bình, là người đã viết bài "kinh nghiệm làm luận văn" và hân hạnh được đăng lại trong blog của anh. tôi đã đọc bài viết này của anh từ khá lâu và cũng đăng lại trong blog mình, và rất thích thú. Tuy nhiên gần đây tôi mới quyết định thực hiện một dự án cộng đồng trong lĩnh vực này. Tôi mong mỏi có được sự giúp sức của anh để đưa những bài viết tham khảo mang tính nền tảng, nâng cao liên quan tới thuật tóan, thuật giải về một mối được trình bày hệ thống bằng tiếng Việt. Mời anh vào http://www.ieev.org và tham khảo thông tin giới thiệu của tôi. Mong anh cho ý kiến và giúp đỡ.

Unregistered user Friday, March 26, 2010 12:09:15 AM

Anonymous writes: Chào Quang, Mình đang làm nhận dạng cảm xúc của người qua gương mặt. Bạn có code về phần này không? Nếu có, có thể share cho mình với. Mình đang cần. Cám ơn nhiều. Mail cùa mình là mucdonghb@yahoo.com

Quang Hoanghodawa Saturday, April 3, 2010 6:03:13 PM

@A.Bình: cám ơn anh đã quan tâm. Hy vọng bài viết này giúp ích cho anh.
@mucdonghb: xin lỗi bạn, mình chưa từng làm qua vấn đề này.

Unregistered user Monday, August 16, 2010 4:48:34 AM

Anonymous writes: anh oi, luc em downlaod code cua nh ve thi chay debud no bao fatal error C1083: Cannot open include file: 'afxwin.h': No such file or directory em khongbiet ca file. h do nam dau anh giup em voi

Unregistered user Thursday, August 19, 2010 4:15:40 PM

Từ Phi Bão writes: Em đang làm bài tập nhóm về đề tài này, nhưng source code của anh down không được Anh có thể Upload lại được không, cảm ơn anh rất nhiều

Unregistered user Sunday, August 22, 2010 9:09:19 AM

htduong12 writes: anh Quang oi!! anh upload lai bai nay dc ko em download nhung bi hu roi cam on anh!! chuc anh thanh cong trong cuoc song

Unregistered user Sunday, August 29, 2010 9:39:17 AM

Anonymous writes: bài viết nhiều lỗi chính tả quá :(

Unregistered user Wednesday, September 22, 2010 7:11:29 AM

HT_8787 writes: sao ko lấy đc code a ơi giúp e với

Unregistered user Thursday, September 23, 2010 3:24:21 PM

mtan writes: Em đang nghiên cứu về xử lý ảnh sử dụng opencv. Anh có tài liệu nào về haartraining và adaboost ko? có thể chỉ giúp dùm em. Thanks

Unregistered user Friday, October 15, 2010 2:16:37 PM

robotenlua writes: Em chào Thầy Em hiện cũng bắt đầu làm phần nhận dạng nên đang tìm tài liệu, nhưng chưa biết bắt đầu thế nào cho đúng hướng .... Em định làm bằng Matlab,để nhận dạng đối tượng từ ảnh vệ tinh rất mong được ự chỉ dẫn của Thầy Em, cám ơn nhiều (khanhhung_007@yahoo.com.vn)

Unregistered user Friday, November 5, 2010 4:06:40 AM

Anonymous writes: hi anh! anh ơi link code bị lỗi rùi, em không down được, anh up lại cho bọn em được không! Cảm ơn anh nhiều, chúc anh thành công và luôn chia sẻ những kiến thức hữu ích cho mọi người. (thuybn27887@yahoo.com)

Tai NVlongthailai Monday, November 8, 2010 4:02:11 AM

Hi @a Quang, mình đang nghien cứu về detect object dùng haartraining.
Mình muốn tạo ra file xml haarcascade mô tả object (cụ thể object của mình là logo của cty mình)
Mình đả research và làm theo hướng dẫn nhưng không ra kết quả như hướng dẫn.
- ví dụ: opencv-createsamples -img /var/www/detect/work/phone/phone2.jpg -num 3 -bg test/negatives.txt -vec samples2.vec -maxxangle 0.6 -maxyangle 0 -maxzangle 0.3 -maxidev 100 -bgcolor 0 -bgthresh 0 -w 100 -h 100
để tạo ra file vector, còn file negatives.txt mình tạo ra thế nào? anh có biết ko?

Hay anh có cách này de tạo ra file mô tả xml không? chỉ mình với

Mình dang dùng ubuntu. opencv va` các thứ cài hết trơn rồi
Thanks nhiều

Nguyễn Thanh Hùnghungnguyenbmw Friday, February 11, 2011 1:45:12 AM

a Quang ơi.sao em download không được,anh gửi dùm em code vào địa chỉ Gmail nhé :nguoilinhvietnam@gmail.com
cảm ơn anh nhiều lắm

Unregistered user Saturday, March 19, 2011 8:20:49 AM

hano_vn writes: a Quang ơi, em ko download được,anh gửi dùm em code vào địa chỉ Gmail nhé dungclickvaotoi@gmail.com thanks a nh lam!

Unregistered user Tuesday, April 19, 2011 6:04:03 PM

tranhungvuong_mta writes: e chào a! e đang làm một đề tài về nhận dạng mặt người, sử dụng thuật adaboost và đặc trưng haar-like anh ạ. e chưa hiểu cách tính đặc trưng haar-like cho một ảnh mẫu cụ thể là: - với một ảnh huấn luyện dùng một đặc trưng thì giá trị nó là bao nhiêu? cái hàm f(x) đấy ạ. - khi một đặc trưng haar đó quét trên ảnh khuôn mặt thì kích thước của các hình chữ nhật đó là bao nhiêu? mong a giúp e nhé! cảm ơn anh nhìu!

musicmanvolamtieu Monday, June 27, 2011 7:30:30 PM

Anh Quang mail source code cho em duoc ko vi em ko down dc.
musicmana2z@gmail.com

Unregistered user Sunday, August 7, 2011 2:42:40 PM

phuoc writes: sao minh down Source code ko dc.

Unregistered user Sunday, August 7, 2011 2:45:42 PM

phuoc writes: Ban co the goi Source code vao mail cua minh duoc ko. huuphuoc152006@yahoo.com Cam on ban nhiu nha.

Quang Hoanghodawa Friday, August 19, 2011 2:01:17 AM

Unregistered user Thursday, September 1, 2011 5:41:50 AM

Anonymous writes: Anh Quang co the huong dan them cach huan luyen tap anh duoc khong. De minh co the tao ra co so du lieu rieng cho minh, vi du nhu la nhan dang anh cua minh chang hang.

Quang Hoanghodawa Tuesday, September 6, 2011 4:47:45 PM

ban có thể tìm hiểu cấu trúc file dữ liệu ở link sau, từ đó có thể viết tool tạo ra file dữ liệu http://opencv.willowgarage.com/documentation/object_detection.html

nguyen huu phuochuuphuoc1587 Thursday, September 8, 2011 4:18:32 PM

(ban có thể tìm hiểu cấu trúc file dữ liệu ở link sau, từ đó có thể viết tool tạo ra file dữ liệu http://opencv.willowgarage.com/documentation/object_detection.html)

Cảm ơn anh Quang đã hướng dẫn, nhưng em vẫn chưa hiểu lắm. Anh có thể nói rõ hơn được ko. Em đang là đề tài robot bám mục tiêu là mặt người. Nhưng phần tạo cơ sở dữ liệu để robot chỉ nhận dạng mặt của mình thì khó quá. Em tìm hiểu bữa giờ mà vẫn chưa là được. Mong anh có thể chỉ giúp em. Cảm ơn anh nhiều.

nguyen huu phuochuuphuoc1587 Thursday, September 8, 2011 4:23:59 PM

1>TrackFaces.obj : error LNK2019: unresolved external symbol "int __cdecl createTracker(struct _IplImage const *)" (?createTracker@@YAHPBU_IplImage@@@Z) referenced in function "int __cdecl initAll(void)" (?initAll@@YAHXZ)
1>TrackFaces.obj : error LNK2019: unresolved external symbol "int __cdecl initFaceDet(char const *)" (?initFaceDet@@YAHPBD@Z) referenced in function "int __cdecl initAll(void)" (?initAll@@YAHXZ)
1>TrackFaces.obj : error LNK2019: unresolved external symbol "int __cdecl initCapture(void)" (?initCapture@@YAHXZ) referenced in function "int __cdecl initAll(void)" (?initAll@@YAHXZ)
1>TrackFaces.obj : error LNK2019: unresolved external symbol "void __cdecl releaseTracker(void)" (?releaseTracker@@YAXXZ) referenced in function "void __cdecl exitProgram(int)" (?exitProgram@@YAXH@Z)
1>TrackFaces.obj : error LNK2019: unresolved external symbol "void __cdecl closeFaceDet(void)" (?closeFaceDet@@YAXXZ) referenced in function "void __cdecl exitProgram(int)" (?exitProgram@@YAXH@Z)
1>TrackFaces.obj : error LNK2019: unresolved external symbol "void __cdecl closeCapture(void)" (?closeCapture@@YAXXZ) referenced in function "void __cdecl exitProgram(int)" (?exitProgram@@YAXH@Z)
1>TrackFaces.obj : error LNK2019: unresolved external symbol "struct _IplImage * __cdecl nextVideoFrame(void)" (?nextVideoFrame@@YAPAU_IplImage@@XZ) referenced in function "void __cdecl captureVideoFrame(void)" (?captureVideoFrame@@YAXXZ)
1>C:\Users\huuphuoc\Desktop\Hoc Opencv\Thuc Hanh\TrackFaces\Debug\TrackFaces.exe : fatal error LNK1120: 12 unresolved externals

Anh cho em hỏi thêm vấn đề này nữa nha. Em biên dich code trong VS2008 bi những lỗi ở trên. Anh có thể cho em biết là lỗi gì được ko.

Trương Thị Thảotruongthithao0712 Tuesday, October 18, 2011 5:38:27 PM

anh có thể nói rõ hơn cách huấn luyện tập ảnh được không, em đọc link anh đưa rồi nhưng k hiểu. anh có code adaboost về huấn luyện tập ảnh không, share cho em với. Em cảm ơn anh nhiều.

Write a comment

New comments have been disabled for this post.

February 2014
S M T W T F S
January 2014March 2014
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28