BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM THÀNH PHÓ HỎ CHÍ MINH
Nguyễn Khánh Duy
THEO VÉT ĐÓI TƯỢNG DỰA TRÊN RPN Chuyên ngành : Khoa học máy tính
Mã số : 8480101
LUẬN VĂN THẠC SĨ MÁY TÍNH
NGƯỜI HƯỚNG DÁN KHOA HQC:
Trang 2LOI CAM DOAN
Tôi xin cam đoan các kết quả nghiên cứu, thực nghiệm được trình bày trong
luận văn này do tôi thực hiện dưới sự hướng dẫn của TS Ngô Quốc Việt Tất cả
những tham khảo từ các nghiên cứu liên quan đều được nêu nguồn gốc một cách rõ
ràng từ danh mục tài liệu tham khảo của luận văn Trong luận văn, không có việc sao
chép tài liệu, công trình nghiên cứu của người khác mà không chỉ rõ về tài liệu tham
khảo
TP.Hồ Chí Minh tháng 9 năm 2018
Học viên
Trang 3LOI CAM ON
Trong qua trình thực hiện luận văn đòi hỏi cần nhiều sự kiên trì và tập trung cao độ Tôi thực sự hạnh phúc với kết quả đạt được trong luận văn này Những kết quả đạt được không chỉ là nỗ lực cá nhân, mà còn có sự hỗ trợ và giúp đỡ của thầy hướng dẫn, đồng nghiệp và gia đình Tôi muốn bày tỏ tình cảm của mình đến với họ
Trước tiên, tôi xin gửi lời cảm ơn sâu sắc nhất đến thầy TS Ngô Quốc Việt,
đã tận tình hướng dẫn tôi trong suốt quá trình thực hiện và hoàn thành luận văn tốt
nghiệp Tôi cũng xin gửi lời cảm ơn chân thành đến quý Thầy/Cô — Trường Đại học
Sư phạm Thành phó Hồ Chí Minh đã truyền đạt những kiến thức và kinh nghiệm quý
báo trong quá trình học tập Đồng thời, tôi cũng xin cảm ơn Ban chủ nhiệm Khoa
Công nghệ Thông tin và Phòng Sau Đại học đã hỗ trợ và tạo điều kiện cho tôi trong
thời gian qua
TP.Hồ Chí Minh tháng 9 năm 2018 Học viên
Trang 4MUC LUC Lời cam đoan Trang Lời cảm ơn Mục lục Danh mục các kí hiệu và chữ viết tắt Danh mục các bảng Danh mục các hình vẽ, đồ thị NEIHỀ SG uanrbroonidiognnrorrrrnrtriorrohtoDurtrirausionniisiBinnasssanitrritrn
Chương 1 GIỚI THIỆU CHUNG 22211! 2222$%$%SS22222222211122121222212222122e 3
12];/GIG? tiiệu đổ ÍÍ pueneseossotgDERGĐHGNG0G0E3QB4S0.82L010104G0360630001863083E800108 3
1.2 Nội dung đề tài - <ssSxStE St T3 1111111111171 1111 1111111111111 4
LH II ĐEN Hiossonooqemuurotenahikotgto0100104900002/80401YN8000004700/4031040000/0900040100020000 5
1.4 Phương pháp và đối tượng nghiên cứu 2 + 2 s2 s+cz+x+zszzxcrxee 5 1,4,1: Phườn phố) TìEhIOD GỮH sao dit saGtG583548/41510058440230640386 5
1.4.2 Đối tượng nghiên CỨU - ¿+ 2 S958 x£ESEE£E£E£EEEEEEeExrkrrrrsrrrrrree 5
1.7 CA cũïe tình nghiền cbù liêu TT HH sua sa gu aaoooiGtibtiiG8isacdus 3 lS) Cae cite tith nghién iu tDH6 HƯI? odudoaaadouodguaoa-ouragga 3 122 KG GÔNG trình gqghHiỂn CŨU:ngpñ1i THỜ vc cosrrnccerconanneoneeneamsnenntocennrannen 6
Chữ 2) EY TE ssessissciscccctzessssccssscscns tease scabs 8
2.1 Tông quan phương pháp phát hiện đối tượng 2 ©5255 55+: 8 2.1.1 Mạng nơ-ron tích chập và các cai ti€n cececsssessesseseessesesseseseseeseenes 10
2.1.2 Kién trtic mang huan LOVED nga áccc66106606066160666610603000064/003/060002688 20
2.2 Theo vết đối tượng -¿- 2 + +22 x++#£E£EEEEEEEEEEEEEEEEEEEEEEEEEErkrrerkrrrrerred 23
2.2.1 Theo vết đối tượng dựa trên phát hiện liên tục . -¿- - 23 2.2.2 Theo vết đối tượng dựa trên thư viện OpenCV API - 25
Trang 5Chương 3 PHƯƠNG PHÁP PHÁT HIỆN VÀ THEO VET DOI TUONG 30
3.1 Theo vét đối tượng dựa trên rpn của Faster R-CNN . -5- 30 3.2 Theo vết đối tượng dựa trên kết hợp máy dò Faster R-CNN và thư viện theo
VẾPEDEOEENGV SP bioeotainoigtEDbbbtogoeoitisegig0g9x450340401800:0302 xzse 31
39.1: THEØ Wet oi Hie GS WOR TLD wesc ccencarcinramcessaraunpeuas 32
3.2.2 Theo vết đối tượng dựa trên - GOTURN . 2 2+szcsz s2 33
Chương 4 THỤC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUÁ 35
4.1 Công cụ công nghệ và phương tiện thực nghiệm .-«s- 35
4.2 Huấn luyện mô hình Faster R-CNN trên bộ dữ liệu 36
4.2.1 Thu thập dữ liệu huấn luyện - - 2-25 x2 s+x£Sxzsezxczsxees 36 42,2 DU LY CIE TG1 -ccenssssnssresccnseocnenccronsssonnesqersedsaensasnnscenssvesencaresseosnenestse 37
4.2.3 Phân chia dữ liệu huấn TƯ cá cutayicuixbiia005610166600106599v55043003/0306306i66 38 4.2.4 Cài đặt và huấn luyện mô hình thực nghiệm - «+: 39 N6 ‹(.n no 40 4.3 Triên khai mô hình theo vết đối tượng .- + + ¿+52 s+ss+£xzses+zx+ 43
Trang 6DANH MUC CAC Ki HIEU VA CHU VIET TAT
Viet tat Diễn giái
ANN Artificial Neural Network
API Application Programming Interface CNN Convolutional Neural Network CPU Central Processing Unit
GPU Graphics Processing Unit
ILSVRC Imagenet Large-Scale Visual Recognition Challenge
RGB Red, Green, Blue
RNN Recurrent Neural Network
RPN Region Proposal Network SSD Single Shot Detectors SVM Support Vector Machine Yolo You Only Look Once
Trang 7DANH MUC CAC BANG
Bảng 2.1 Mô tả của các mạng liên kết VGG16 và VGG19 [13] 22 Bảng 2.2 So sánh kết quả giữa các mô hình [22] .- - - 2s + z2 x££vzxz se: 24
Bảng 2.3 Bảng so sánh hiệu suất của các gói công cụ hỗ trợ cho học sâu [29] 29
Bảng 4.1 Bảng thông số câu hình máy tính, các phần mềm hỗ trợ - 35 Bảng 4.2 Thống kê số lượng của các đối tượng dữ liệu thu thập 37
Bảng 4.3 Mô tả dữ liệu được chia đề huấn HHYỆH (HQ LÍ lỆ Ládaidkiediooiaaueedaooe 38
Bảng 4.4 Kết quả huấn luyện với 2 kiến trúc mạng VGG16 và VGGI9 40
Trang 8DANH MUC CAC HINH VE, DO THI
Hình 1.1 Theo vết khách bộ Hành DÃ ggoettatatdaagagoatuotgctst64g0iettoysgicsaeqsagns 3 Hình 1.2 Hệ thông camera điều khiến xe tự hành [5] .- - ¿2+ +SeScE+EzSEzeess 4 Hi 5.1 TỊCH chữu với BỘ lQ0 (3X) LÌ-Í |uessnoaaueavbdideeiaiiobsakbsVnsd0080603966/696100y66055 11
Hình 2.2 Mô tả phương thức Max Pooling và Avarage Pooling 13
Hình 2.3 Ví dụ mô hình nhận diện đối tượng sử dụng ƠNN 14
Hình 2.4 Minh họa ảnh trong thử thách phân loại của ImageNet 2012 14 Hình 2.5 Minh họa độ phức tập của các đối tượng trong ảnh -s- s2 15 Hinh 2.6 Két quả nhận diện và phân loại của R-CNN «<< -<~- 15 Em 2:7 86 uric thir: bier cite RAGIN ois cccssivicancisasesnearnswanercatncnncsnnawarencaneavenientii 16 Hình 2.8 Mô tả CNN sử dụng cho các đề xuất vùng và phân loại - 17
Hình 2.9 Ví dụ hình ảnh qua mạng tích chập với kiến trúc mang VGGI16 18 Hinh 2.10 Mang đề xuất khu VuC RPN oiecccccceccscscccececscseseeececsvscsesevevevevacsesenevevavaceees 19 Hin 2:1 1 MG ta Gach tab Ta: k ANCHO sscsscissssscccccssssssasccccssesswsvesaisearsasuccanseesesies 19 Hinh 2.12 Két qua ILSVRC qua Cac Nam oecceccccscecescssesessescscsscsvssssesessesesseseaveseaevees 21
Hình 2.13 Kiến tric mang VGG16 cccccccssescssessessesessesessesvescssesessesvesessesesscaveaeevees 22
Hình 2.14 Kết quả phát hiện đối tượng sử dụng Faster R-CNN trên tập dữ liệu
PAO Ve BOE cxtecreserteccnecezesesconessrerssienesensea autres 24 Hình 2.15 Quá trình phát triển của OpenCV [28] 2- ¿22 2+s+2szz+zsz=z>s4 28
Hình 3.1 Sơ đồ theo vết đối tượng sử dụng Faster R-CNN . - - 55c: 30
Hình 3.2 Sơ đô theo vết đối tượng dựa trên thư viện OpenCV API kết hợp máy Nổi BE RE LÍ HÌ careeseseneteuoettoouittutibriCG000001000001G001001300/ 200000293003 M51205400002000102001 G0 3l
HìW:3 BHliv:ETT H.fGÌ|HNEHE saeeutuecngtosgustdiSgictGg010061.008610013068040940X06600g00/2063g381600120201 32 Hình 3.4 Mô tả ba thành phần của TLD 2- ¿s2 ++#£SEzS2EzS+zEzzEzxzzzzzezzd 32
Hình 3.5 Sơ đồ theo vết đối tượng của TLD 2- 5 c+ssscxeeesereeeeeeeveee.v.e 33 Hình 3.6 Minh họa máy dò Faster R-CNN và trình theo vết GOTURN 33
Hình 3.7 Mô tả Goturn sử dụng hai khung hình làm đầu vào, đầu ra là hộp giới hạn bao quanh đối tượng ở khung hiện tại thứ hai - 34
Hình 4.1 Sơ đồ quy trình huấn luyện dữ liệu bằng mô hình Faster R-CNN 36
Trang 9Hình 4.3 Mô tả gán nhãn đữ liệu đối tượng xe máy (motorbike) - - - 38
Hình 4.4 Sơ đồ huấn luyện dữ liệu của Faster R-CNN ¿- 2 2 cscssszsz 39 Hình 4.5 Quá trình huấn luyện mô hình với hệ điều hành Ubuntu, sự hỗ trợ của công nghệ thư viện Caffe và GPU GTX 1070Titan - - 39
Hình 4.6 Kết quả đánh giá hai mô hình dựa trên biêu đồ đường cong độ chính xác Võ GÒ HH D HD se keeeeseeinirioeteasieasetonlauiisd0ssisdvxi0BSG200553001340/010101460360648605615 408 40 Hình 4.7 Kết quả phát hiện đối tượng của mô hình huấn luyện với bộ dữ liệu Pascal VOC II" Ẻ ốẻ ẻẽ ẽ hố hố" 4] Hinh 4.8 Két qua phát hiện đối tượng của mô hình dựa trên kiến trúc VGGI6 41
Hình 4.9 Kết quả phát hiện đối tượng của mô hình dựa trên kiến trúc VGG19 42
Hình 4.10 Kết quả phát hiện đối tượng của mô hình . ¿s2 2 z+sz=zzs2 43 Hình 4.11 Minh họa và đồ thị kết quả theo vết Xe con OEE FIC kg aeeaesaensre 44 Hình 4.12 Hình và biểu đồ minh họa kết quả theo vết xe máy trong video 45
Hình 4.13 Hình và biểu đồ minh họa kết quả theo vết nhiều trong video 46
Hình 4.14 Kết quả theo vết đối tượng bằng GOTURN và TLD - - 47
Trang 10MO DAU
Dong co nghién ciru
Trong những nam gan day, van đề của việc phát hiện đối tượng (Ójeci
Detection) và theo vết đôi tượng (Øbject Tracking) là bài toán thuộc lĩnh vực thị giác
máy tính Cùng với tốc độ phát triên của khoa học kỹ thuật thì con người càng có nhu cầu sử dụng các hệ thống thông minh cùng với mức độ tự động hóa ngày càng cao Trong đó phải kể đến một số các ứng dụng của lĩnh vực thị giác máy tính tiêu biểu như: điều hướng (trong lĩnh vực giao thông và robø/), mô hình hóa đối tượng (trong
ảnh y khoa), giám sát tự động (trong mô hình sản xuất tự dong) [1]
Bên cạnh đó học máy đã được nghiên cứu và phát triển mạnh mẽ, đặc biệt là sự phát triển của Trí tuệ nhân tạo đã xây dựng được các chương trình máy tính có thể tự
động thu thập tri thức, cải thiện khả năng của mình thông qua các kinh nghiệm đã trở nên phô biến Trong đó CNN đã được áp dụng và đạt nhiều kết quả, bên cạnh đó công nghệ của máy học được thể hiện qua các ứng dụng đa dạng trong thực tế trong các lĩnh vực như: phân loại hình ảnh, xử lý ngôn ngữ tự nhiên, phát hiện đối tượng,
robofics, khai phá dữ liệu, v.v
Học sâu (Deep Learning) là một thuật toán dựa trên một SỐ ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biêu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa
của các loại dữ liệu Trong đó phương pháp mạng nơ ron tích chập (CNN) được sử dụng chủ yêu và đạt được kết quả tốt trong lĩnh vực phân tích hình ảnh thị giác, đã chiến thắng trong cuộc thi do ILSVRC (ImageNet Large-Scale Visual Recognition
Challenge) tô chức vào năm 2012 [2] Với công nghệ vượt trội như hiện nay thì việc
áp dụng CNN không còn hạn chế trong việc nhận dạng hình ảnh mà đã vươn xa hơn
đó là phát hiện đồi tượng và gán nhãn cho đối tượng đó
Ngoài ra, với sự phát triên nhanh chóng của các thiết bị phần cứng ngày càng phát triển cùng với ngành công nghệ phần mềm cũng không ngừng mở rộng đề phù hợp với các yêu cầu của thực tế Trong đó phải kê đến sự phát triển của các thiết bị thu nhận hình ảnh từ thế giới thực Khi đó dữ liệu thu được từ hệ thống ghi hình
(camera) thường được lưu trữ dưới dạng video Như vậy công việc hiện nay của
Trang 11Từ yêu cầu thực tế được đặt ra, việc áp dụng mô hình phát hiện và theo vết đối tượng với sự hỗ trợ của thuật toán học tập sâu (Deep learning) đề đạt được hiệu
qua theo vét đối tượng đạt được thời gian thực là thật sự cần thiết
Cấu trúc của luận văn
Nội dung luận văn được chia thành các phần như sau:
e Chương I: Giới thiệu chung về đề tài và nội dung sẽ nghiên cứu
e Chương 2: Tông quan các phương pháp theo vết đối tượng và các công trình nghiên cứu liên quan
e Chương 3: Trình bày các hướng tiếp cận của Phương pháp phát hiện và theo vết đối tượng
e Chương 4: Thực nghiệm và đánh giá kết quả từ đó nêu lên những đóng góp
Trang 12Chương 1 GIỚI THIỆU CHUNG
Chương một sẽ giới thiệu về van dé, mục tiêu, nội dung nghiên cứu của đề tài,
giới hạn của đề tài và phương pháp nghiên cứu Đồng thời trình bày một số các công
trình nghiên cứu liên quan ở trong nước và ngoài nước 1.1 Giới thiệu đề tài
Theo vết đối tượng là giám sát các thay đổi theo không gian và thời gian của
đối tượng trong suốt chuỗi video như vị trí, kích thước hoặc hình dáng của đối tượng Với bài toán theo vét đối tượng ta có một số các ứng dụng [3]:
Giám sát tự động: trong những ứng dụng này hệ thống thị giác máy tính được thiết ké dé kiém soat (monitor) nhitng chuyén d6ng trong mot ving (area), xac dinh
đối tượng chuyên động và cảnh báo khi thấy bất kỳ tình huống khả nghi nào Đòi hỏi hệ thông phải đủ mạnh đề phân biệt được các thực thể tự nhiên và con người
Hình 1.1 Theo vết khách bộ hành [4]
- Robot vision: với robot tự động, hệ thong diéu hướng (navigation) cần phải nhận biết được chướng ngại vật (obs/acle) trên đường đi Và nêu đó là những đói tượng di chuyền, robot cần kích hoạt hệ thống theo vết thời gian thực đề tránh va chạm
Trang 13
Hình 1.2 Hệ thống camera diéu khién xe tu hanh [5]
Luận văn này sẽ xem xét dựa trên các kết quả chính xác và hiệu quả của mô
hình máy dó phát hiện đối tượng (Øbject Defection) Có nhiều phương pháp đề giải quyết xử lý bài toán theo vét đối tượng (Øj/ect Tracking) Từ đó tùy vào môi trường,
ngữ cảnh, mục tiêu và điều kiện chúng tôi lựa chọn phương pháp cho phù hợp với bài
toán
1.2 Nội dung đề tài
Trong đề tài này vấn đè đặt ra là làm sao từ một đoạn video, và với mỗi khung hình ta sử dụng mô hình mạng học sâu đề trích xuất các khu vực đề xuất đề phát hiện và xác định nhanh được đâu là đối tượng dựa vào dữ liệu học ban đầu, theo vết sự di
chuyên của đối tượng đó
Bài toán được phát biêu như sau:
Cho trước dữ liệu là đoạn video có đối tượng cần theo vét
Dữ liệu đầu vô (inpuf): đoạn video chứa đối tượng đang chuyền động
Dữ liệu đầu ra (output): doan video chita đối tượng được đóng khung theo vết và đồng thời cho duy trì danh tính của đối tượng đó trong mỗi khung hình
Giới hạn đề tài
Có nhiều thách thức trong bài toán theo vét đối tượng trong dữ liệu video làm cho bài toán trở nên phức tạp như là: theo vết một đối tượng, hay nhiều đối tượng và các đối tượng di chuyền phức tạp Vì vậy, trong đề tài nghiên cứu này luận văn chỉ
xác định theo vét trên một đối tượng cụ thể là xe hơi, xe máy, xe đạp, hành vi chở
qua s6 ngudi quy dinh khi tham gia giao thong (car, motorbike, bicycle, people) Ap
Trang 141.3 Mục tiêu của đề tài
Mục tiêu là nghiên cứu các kiến thức lĩnh vực thị giác máy tính bao gồm các thuật tốn, mơ hình huấn luyện và đào tạo dữ liệu đề phát hiện đối tượng và theo vết đối tượng Cụ thê là áp dụng mô hình Faster R-CNN huấn luyện bộ dữ liệu gom cac
lép d6i tuong: car, motorbike, bicycle, people Sau đó áp dụng kết quả mô hình để phát hiện và theo vét đối tượng đó trong video
1.4 Phương pháp và đối tượng nghiên cứu
1.4.1 Phương pháp nghiên cứu
— Luận văn này sẽ tiễn hành từ việc thực hiện tham khảo, khảo sát một số các
công trình nghiên cứu liên quan trước đây đến bài toán phát hiện và theo vết đối tượng Xem xét đến các phương pháp và mô hình mà các tác giả sử dụng
— Khảo sát đánh giá ưu điểm của các phương pháp Sau đó lựa chọn phương
pháp, mô hình phù hợp đề giải quyết bài toán đạt kết quả tốt nhất
— Hiện thực các phương pháp đã nghiên cứu bằng công cụ, thư viện và các công nghệ như: Python, Caffe, Tensorflow, OpenCV Sau đó so sánh và đánh giá kết quả
chúng tôi đạt được
1.4.2 Đối tượng nghiên cứu
— CNN, Faster R-CNN, và RPN dùng phát hiện đối tượng
- Theo vét một đối tuong (Single Object Tracking),theo vết nhiều đối tượng (Multiple Object Tracking), thư viện theo vết đối tượng của OpenCV API
- Công cụ công nghệ hỗ trợ Python, Caffe
- Kiến trúc mang ZF, VGG16, VGG19
— Bộ dữ liệu Pascal Voc 2007, và bộ dữ liệu thu thập
1.5 Các công trình nghiên cứu liên quan 1.5.1 Các công trình nghiên cứu trong nước
Điều khiến robot pioneer P3-DX bám sát đối tượng của tác giả Mã Trường Thanh [6]
Hé théng nay két hop cac giai thuat may hoc vao Robot Pioneer P3-DX nhăm
điều khiến các hành vi, đi chuyển và bám sát của Robot theo thời gian thực Giải thuật
Trang 15phát hiện, nhận dạng đối tượng và sử dụng giải thuật CamShift (Continuously Adaptive MeanShữ†) đề giám sát hoạt động của đối tượng trong phạm vi mặt phăng ảnh Bước cuối cùng là tính toán vị trí và kích thước của đối tượng trên mặt phăng
ảnh đề điều khiên Robot hoạt động và bám sát theo đối tượng
Nghiên cứu ứng dụng kỹ thuật theo vết đối tượng xây dựng hệ thống camera giám sat thông mình của tác giả Phạm Nguyên Khang [7]
Hệ thông camera giám sát thông minh sử dụng kỹ thuật theo vết đối tượng Phân
cốt lõi của hệ thống là bộ theo vết đối tượng, hoạt động dựa trên trên việc kết hợp
giữa truy vết đối tượng bằng luồng quang học, so khớp các đặc trưng cục bộ và tìm
sự đồng thuận lớn nhất của các đặc trưng cục bộ Trong công trình này một thuật giải
thuật mới đã được đề xuất bởi tác giả nhằm tăng tốc độ xử lý các khung hình băng kỹ thuật 6ng dan (pipeline) trên các hệ thống máy tính đa nhân Giải thuật này chia quá
trình xử lý thành bốn giai đoạn liên tiếp, phụ thuộc nhau và giao cho bốn tiễn trình xử lý chúng một cách độc lập Việc đồng bộ giữa các tiền trình được thực hiện bằng
mô hình sản xuất - tiêu thụ (producer — consumer) Điều này giúp tăng tốc độ xử lý lên đến 3,3 lần trên hệ thống máy tính bốn nhân Hệ thống camera giám sát thông
minh sẽ theo vết đối tượng liên tục và phát tín hiệu cảnh báo khi đối tượng cần theo
vết biến mắt trong một khoảng thời gian được định trước 1.5.2 Các cơng trình nghiên cứu ngồi nước
Multiple Object Tracking Based on Faster R-CNN Detector and KCF Tracker cua cac tac gia Fan Bu, Yingjie Cai va Yi Yang [8]
Đưa ra bộ theo vết đa đối tượng dựa trên kết hợp của máy dò Faster R-CNN
cho nhiều đối tượng, các tác giả sử dụng ưu thế phát hiện đối tượng nhanh chóng của
máy dò Faster R-CNN được đào tạo với bộ dữ liệu, đạt độ chính xác trung bình 0.7127
Nhóm tác giả sử dụng mô hình này kết hợp với thuật toán KCE (Kernelized Correlation Filter) đề theo vết đối tượng theo thời gian thực dựa trên quá trình xử lý
nhanh của bộ lọc tương quan bao gồm phân tích các khung trong miền Fourier trong đó thành phân cót lõi của trình theo vết này là có nhiệm vụ phân biệt được giữa mục
Trang 16thuộc tính giúp quá trình theo vết nhanh hơn và chính xác hơn Tuy nhiên trình theo vết này bị các vấn đề ảnh hưởng đến hiệu suất như tắc nghẽn (khi đối tượng bị che khuất) trong quá tình theo vết hay luân chuyên và thay đôi của đối tượng
Tracking People by Detection Using CNN Features của nhóm tác giả Dina Chahyati, Mohamad Ivan Eanany, Aniati Murni Arymurthy [9| Hệ thống theo vét đối tượng được xây dựng cho ứng dụng trong giám sát các
đối tượng dựa trên phát hiện liên tuc (tracking by detection) voi ky thuat hoc sau
(Deep learning) Trong công trình này tác giả sử dụng Faster R-CNN huấn luyện với
bộ dữ liệu có hai lớp nam và ni (man and woman), mang huấn luyện đề xuất khu vực được tác giả sử dụng với các khu vực được đề xuất theo các kích thước (52, 72, 96, 100, 136, 184, 192, 264, 376) va ba ti 1é khung (1:1,1:2.:2:1) với tông số lượng đề xuất của mạng sử dụng dé đào tạo mô hình là 300 đề xuất Đề theo vết đối tượng nhóm tác đã đào tạo một mạng nơ-ron Siamese Neural Network (SNN) Mạng này sử
dụng hai hình ảnh đầu vào đã được phát hiện bởi máy dò Faster R-CNN, trong đó các
đối tượng được gán nhãn và khung bao quanh đối tượng SNN được đào tạo đề dự
đoán vị trí của các đối tượng di chuyên dựa trên hai ảnh mẫu này Trong công trình này nhóm tác giả đào mô hình phát hiện đối tượng đạt kết quả độ chính xác trung bình của hai lớp là 0.75 và độ chính xác khi theo vết đối tượng là 0.7
Kết luận chương 1:
Chương một đã nêu lên các ứng dụng của hệ thống theo vết đối tượng, trình bày
Trang 17Chuong 2 CO SO LY THUYET
Chương này chúng tôi sẽ trình bày tông quan về mạng nơ-ron tích chập (Convolution neuron network), viet tat la CNN va cac phuong phap cai tién cua CNN áp dụng trong phương pháp phát hiện và theo vét đối tượng Và các thuật toán tiêu biêu trong thư viện OpenCV dùng áp dụng đề theo vết đối tượng được chúng tôi trình bày trong luận văn
2.1 Tổng quan phương pháp phát hiện đối tượng
Trong phần này chúng tôi sẽ trình bày một trong những lĩnh vực quan trọng của Tri tué nhan tao (Artificial Intelligence) do là thi giac may tinh (Computer Vision) Đây là một lĩnh vực bao gồm các phương pháp như thu nhận, xử lý ảnh kỹ thuật SỐ, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải
hinh anh va nhiéu hon vay Phat hién ddi tuong (Object Detection) c6 lẽ là khía cạnh
sâu sắc nhất của thị giác máy tính do số lần sử dụng trong thực tế của các ứng dụng
Phát hiện đối tuong (Object Detection) đề cập đến khả năng của hệ thong phan
cứng máy tính và phần mềm, công cụ hỗ trợ đề giúp định vị các đôi tượng trong một
hình ảnh và xác định, nhận diện, định danh từng đối tượng Vì thế phát hiện đôi tượng đã được sử dụng rộng rãi đề phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ
hệ thông bảo mật và xe không người lái Có nhiều cách đề nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực hành Giống như mọi công nghệ
khác, một loạt các ứng dụng sáng tạo và tuyệt vời của phát hiện đối tượng sẽ đến từ
các lập trình viên và các nhà phát triển phần mềm
Bắt đầu sử dụng các phương pháp nhận diện đối tượng hiện đại trong các ứng
dụng và hệ thông, cũng như xây dựng các ứng dụng mới dựa trên các phương pháp
này Việc phát hiện và nhận diện đối tượng sớm liên quan đến việc sử dụng các thuật tốn cơ điền, giống như các thuật toán được hỗ trợ trong OpenCV, thư viện thị giác
máy tính phô biên nhất hiện nay Tuy nhiên, các thuật tốn cơ điển này không thể đạt
Trang 18đối tượng khác nhau sử dụng thị giác máy tính đã được phát trién va img dung rong rãi trong đời sống thực tiễn Các phương pháp này phát hiện đôi tượng với ba bước
chính Bước thứ nhất là dựa vào các thuộc tính của đối tượng như màu sắc, kết cầu bê mặt và hình dạng đê trích chọn các đặc trưng ảnh Bước thứ hai là sử dụng tập dữ liệu mẫu đề xác định các tham số cho các bộ nhận dạng đối tượng trong ảnh Bước thứ ba là sử dụng bộ nhận dạng đề xác định đối tượng trong các ảnh đầu vào bắt kỳ Trong hệ thông phát hiện mục tiêu quân sự thì việc trích chọn đặc trưng ảnh đóng
một vai trò quan trọng Có hai xu hướng chính trong việc trích chọn đặc trưng: một
là sử dụng các đặc trưng cạnh; hai là sử dụng các đặc trưng màu và kết câu bề mặt
của các vùng ảnh Các phương pháp dựa trên các đặc trưng cạnh xác định đối tượng trong ảnh băng việc đi tìm các đường bao của đôi tượng Điêm mạnh của các phương pháp này là bất biễn với các điều kiện ánh sáng và sự dịch chuyền của đối tượng Tuy nhiên, các phương pháp dựa vào cạnh lại nhạy cảm với các cạnh nhiễu và không có hiệu quả khi trong ảnh xuất hiện nhiều cạnh nhiễu Mặt khác, hiệu quả của các phương pháp này lại phụ thuộc vào việc dò tìm các điểm cạnh Các phương pháp sử dụng các
đặc trưng màu và kết cấu bề mặt của các vùng ảnh có hiệu quả cao trong việc dò tìm
các đôi tượng mà chúng có màu sắc hoặc kết cấu bề mặt rất khác so với các đối tượng nền khác trong ảnh Điểm yếu của các phương pháp này là chúng rất nhạy cảm với sự thay đối của các điều kiện ánh sáng và thường lỗi trong trường hợp đối tượng bị ảnh hưởng bởi các vùng rất sáng và các bóng râm Ngoài ra thời gian xử lý cho mỗi đối tượng cho các yêu cầu phực tạp và đôi hỏi độ tin cậy cao thì kết quả thuật toán của các phương pháp này thường thấp
Việc áp dụng đột phát và nhanh chóng của phương pháp học sâu (Deep learning) vào năm 2012 đã đưa vào sự tồn tại các thuật toán và phương pháp phát hiện đối tượng
hién dai va chinh xac cao nhu R-CNN, Fast R-CNN, Faster R-CNN, RetinaNet va
nhanh hơn nhưng rất chính xác như SSD và YOLO [10] Sử dụng các phương pháp
và thuật toán này, dựa trên học sâu và cũng dựa trên việc học máy đòi hỏi rất nhiều
Trang 1910
Trong nội dung tiếp theo này, chúng tôi trình bày trình bày tổng quan về mạng nơ-ron tích chập và các phương pháp cải tiến của nó được áp dụng trong phương pháp phát hiện Và các thuật toán tiêu biêu trong thư viện OpenCV ding dé áp dụng theo vết đôi tượng trong luận văn này Sau đó xem xét, so sánh các kết quả nhằm mục đích
làm cơ sở lựa chọn phương pháp đạt hiệu suất tốt nhất đê thực hiện mục tiêu của đề
tài
2.1.1 Mạng nơ-ron tích chập và các cải tiến
Mang no-ron tich chap CNN (Convolution neuron network) da duge nghién cứu
từ giữa thé kỷ trước [I0] và đã trải qua một sự phát triển đột biến vào cuối thế kỷ trước Mạng nơ-ron là một phương pháp được sử dụng rộng rãi đề thực hiện việc học
sâu ANN, RNN và CNN
CNN là một trong những mô hình học tập sâu (Deep learning) tién tién giúp cho chúng ta xây dựng đựợc những hệ thống thông minh với độ chính xác cao Đặc biệt trong các lĩnh vực xử lý ảnh thì CNN đã rất thành công trong việc áp dụng đề
phân lớp và nhận dạng ảnh với bộ dữ liệu ImageNet dataset [ II]
Trong nội dung tiếp theo chúng tôi trình bày về kiến trúc của CNN bao gồm một dãy các tầng và các tầng của một CNN chuyền một thê tích kích hoạt sang một tầng khác thông qua một hàm khác biệt Về cơ bản mô hình mạng nơ-ron tích chập bao gồm cac tang sau: Tang tich chap (Convolutional), Tang kich hoat phi tuyén
ReLU (Rectified Linear Unit), Tang nét trích (Pooling) và Tầng kết nói day du (Fully- connected), duge thay đổi về số lượng và cách sắp xếp đề tạo ra các mô hình huấn
luyện phù hợp cho từng bài toán khác nhau Tang tich chap (Convolution layer)
Trang 20II Các điểm ảnh góc Bộ lọc tích chập - -* oe - Giá trị điềm ảnh mới a Hình 2.1 Tích chập với bộ lọc (3x3) [11]
Trong ví dụ ở Hình 2.1, một bộ lọc (Ø/zer) được sử dụng là một ma trận có kích
thước 3x3 Bộ lọc này được dịch chuyền lần lượt qua từng vùng ảnh đến khi hoàn
thành quét toàn bộ bức ảnh, tạo ra một bức ảnh mới có kích thước nhỏ hơn hoặc bằng với kích thước ảnh đầu vào Kích thước này được quyết định tùy theo kích thước các khoảng trăng được thêm ở viền bức ảnh gốc và được tính theo công thức (2.1) [12] o=! +2*p—k + ] (2.1) § Trong đó: - : là kích thước ảnh dau ra
- ï: là kích thước ảnh đầu vào
- p: là kích thước khoảng trắng phía ngoài viền của ảnh gốc
- k: là kích thước bộ lọc
- §: là bước trượt của bộ lọc
Tang kich hoat phi tuyén ReLU (Rectified Linear Unit)
Trang 2112
chập Tâng kích hoạt phi tuyến nói chung sử dụng các hàm kích hoạt phi tuyến như hàm ReLU hoặc hàm Sigmoid, đề giới hạn phạm vi biên độ cho phép của giá trị đầu ra Trong số các hàm kích hoạt này, hàm ReLU thường được chọn sử dụng do
cài đặt đơn giản, tốc độ xử lý nhanh nhưng vẫn đảm bảo được tính toán hiệu quả Cụ
thé, phép tính toán của hàm ReLU chỉ đơn giản (2.2) là chuyên tất cả các giá trị âm thành giá trị 0
ƒ(x) = max(0,x) (2.2)
Thông thường, tầng kích hoạt phi tuyến được áp dụng ngay phía sau tầng tích
chập, với đầu ra là một ảnh mới có kích thước giống với ảnh đầu vào, các gid tr diém ảnh cũng hoàn toàn tương tự trừ các giá trị âm đã bị loại bỏ
Tang nét trich (Pooling layer)
Tang pooling (hay cdn goi subsampling hoaic downsample) la mot trong nhitng
thành phần tính toán chính trong cấu trúc CNN Thường được theo sau tầng tích chập
và tầng kích hoạt phi tuyến để làm giảm kích thước kích thước ảnh đầu ra trong khi
vẫn giữ được các thông tin quan trọng của ảnh đầu vào Việc giảm kích thước dữ liệu có tác dụng làm giảm được số lượng tham số cũng như tăng hiệu quả tính toán Tầng
lây mẫu cũng sử dụng một cửa sô trượt đề quét toàn bộ các vùng trong ảnh tương tự như tầng Tích chập, và thực hiện phép lấy mẫu thay vì phép tích chập - tức là sẽ chọn
lưu lại một giá trị duy nhất đại diện cho tồn bộ thơng tin của vùng ảnh đó
Các phương thức lây mẫu thường được sứ dụng nhất hiện nay, (xem Hình 2.2) Đó là lẫy giá trị điểm ảnh lớn nhất (Max Pooling) và lây giá trị trung bình của các
Trang 2221181812 1219| 9 8110) 4 18112} 9 410 15| 9 21112 he 1810 TH N
Hình 2.2 Mô tả phương thức Max Pooling và Avarage Pooling
Về mặt ý nghĩa thì Max Pooling xác định vị trí cho tín hiệu mạnh nhất khi áp dụng một loại b6 loc (filter) Điều này cũng tương tự như là một bộ lọc phát hiện ví
trị đối tượng bằng bộ lọc được áp dụng các trong bài toán phát hiện đối tượng trong ảnh
Tầng kết nói đầy đủ (Fully connected layer)
Tầng kết nói đầy đủ này được thiết kế hoàn toàn tương tự như trong mạng nơ-
ron truyền thống, tức là tất cả các điểm ảnh được kết nối đầy đủ với nút trong tầng
tiếp theo So với mạng nơ-ron truyền thông, các ảnh đầu vào của tầng này đã có kích thước được giảm bớt rất nhiều, đồng thời vẫn đảm bảo các thông tin quan trọng cho
việc nhận dạng Do vậy, việc tính toán nhận dạng sử dụng mô hình truyền thăng đã
không còn phức tạp và tốn nhiều thời gian như trong mạng nơ-ron truyền thống
Tóm lại mạng nơ-ron tích chập (CNN) được áp dụng khá nhiều trong các bài toán nhận dạng như nhận dạng vật thể trong ảnh, nhận dạng chữ viết tay (chuyên đôi
chữ viết trong hình ảnh thành văn bản thô trong máy tính), nhận dạng vật thê, xử lý tiếng nói, xử lý ngôn ngữ tự nhiên, với độ chính xác cao Đã có rất nhiều bài báo
Trang 2314 ) fe} on ° ~O ° PO Kf Oo Pans TỐ “«~, ° ‘ed ° No ¬ ° No dog Đạo, w ° e° ° oO ° a ° Lạt Jh convolution + max pooling vec 15 \e | nonlinearity | ° + convolution + pooling layers fully connected layers Nx binary classification
Hình 2.3 Ví dụ mô hình nhận diện đối tượng sử dụng CNN
(Nguon: https://flickrcode.files.wordpress.com/2014/10/conv-net2.png)
Hiện nay thì CNN đã được cải tiền rất nhiều và cũng đã vượt trội hơn so với thử
thách ban đầu của ImageNet vào năm 2012 Với vai trò nhận diện đối tượng trong phân loại ảnh đơn giản (xem Hình 2.4)
Hình 2.4 Minh họa ảnh trong thử thách phân loại của ImageNet 2012 Như vậy trong bài toán phân loại hình ảnh chỉ chứa đối tượng đơn giản làm mục tiêu phân loại và nhiệm vụ giải quyết bài toán và cho biết kết quả đối tượng trong hình ảnh đó là gì Nhưng trên thực tế, thì thật sự thế giới xung quanh phức tạp hơn
rất nhiều, (xem Hình 2.5) Trong đó phức tạp bới các đối tượng chồng chéo lên nhau Vì thế tác gia Ross Girshick [13] dac van dé sir dung CNN đề xác định các đối tượng
khác nhau trong hình ảnh và ranh giới của chúng không Câu trả lời sẽ được chúng
Trang 2415
Hình 2.5 Minh họa độ phúc tập của các đối tượng trong ảnh R-CNN [14]
Muc tiéu cua R-CNN (Regions with CNN Features) la chup anh va xac dinh
chính xác vi trí của các đối tượng chính (thông qua một vùng bao quanh các đối tượng) trong ảnh, (xem Hình 2.6) Đầu vào : Hình ảnh Đầu ra : Khung viền bao quanh đối tượng và gán nhãn cho từng đối tượng trong hình ảnh Hình 2.6 Kết quả nhận điện và phân loại của R-CNN (Nguồn: https:/arxiv.org/abs/131 1.2524)
R-CNN tác giả sử dụng một thuật toán gọi là tìm kiếm chọn lọc (selective search)
[15] đề đưa ra các vùng bao quanh (bounding boxes), hay còn gọi là đề xuất các khu vực (region proposais) chứa các vùng có thê có đối tượng ở trong các khu vực đề
Trang 2516 R-CNN: Regions with CNN features 3 warped region ee SEN >| person? yes a a CNN Ng
1 Input 2 Extract region 3 Compute 4 Classify image — proposals (~2k) CNN features regions
Hình 2.7 Các bước thực hiện của R-CNN
Sử dụng các mạng đã được huấn luyện sẵn như Alex-net, VGG-16 đề tính toán feed-forward cho cac khu vuc (regions) thu duge tap cac dac trung cua m6i region, theo sau đó là một SVM (Support Vector Machine) duge huấn luyện với mục đích dùng đề xác định được vật thê nào được chứa trong khu vực đã được đề xuất
Cuối cùng sử dụng hồi quy tuyến tính (/inear regression) đê hiệu chỉnh các giá trị hay vị trí của các đỉnh của các khu vực đề xuất (region proposer)
FASTER R-CNN [16]
Vào giữa năm 2015, nhóm nghiên cứu của Microsoft Research gồm các tác giả Shaoqing Ren, Kaiming He, Ross Girshick và Jian Sun đã tìm ra cách khắc phục làm
cho bước đề xuất khu vực bang mang kiến trúc mà họ sáng tạo có tên Faster R-CNN
Đây là phiên bản cải tiến của R-CNN và FAST R-CNN [15]
Tác giả dựa trên ý tưởng cơ bản là chia phát hiện đối tượng thành hai giai đoạn riêng biệt (xem Hình 2.8) Trong giai đoạn đầu tiên, các vùng trong hình ảnh có khả năng chứa đối tượng quan tâm được xác định Trong giai đoạn thứ hai, một CNN được chạy trên mỗi khu vực được đề xuất và đưa ra điểm của đối tượng và các tọa độ của vùng bao quanh (bounding box) tương ứng có chứa đôi tượng thay vì chạy một thuật toán tìm kiếm riêng biệt Trong cả hai gia đoạn này sử dụng chung kết quả của tầng tích chập đề tiết kiệm thời gian cũng như các khu vực đề xuất được hiệu quả
Mạng đề xuất khu vực RPN (Region Proposal Network) gitp giai quyét cdc van
Trang 2617
Một mạng đề xuât khu vực này nhận đâu vào là ảnh với kích thước bat ki va cho dau ra la cac dé xuat khu vuc (region proposal) (tap vi tri cua các hình chữ nhật có thê chứa vật thê), cùng với xác suât chứa vật thê của hình chữ nhật tương ứng classifier Rol pooling "LI Region Proposal Networ feature maps conv layers a — Hình 2.8 Mô tả CNN sử dụng cho các đề xuất vùng và phân loại (Nguon: https://arxiv.org/abs/1506.01497) Cách hoạt động RPN có 2 bước chính
Bước I: Trong bước này hình ảnh đầu vào sẽ đi qua một CNN đầu ra là tập các đặc trưng và được chia sẻ ở tầng tích chập cuối cùng (convoiwutional layer)[16]
Trong bài báo gốc tác giả đã nhắc đến nhiều các mạng tích chập (Convolution Neiwork) có săn như VGG-16, ZENet [17] để dễ dàng cho việc giải thích, chúng tôi sẽ lay vi du 6 day la mang VGG-16
Mạng VGG-l6 chứa 13 tầng tich chap (convolutions layer) kich thước bộ lọc
Trang 2718 Convolutional Feature Maps m_ - a | Hình 2.9 Ví dụ hình ảnh qua mang tich chap véi kién tric mang VGG16 (Nguồn: https://www.quora.com/How-does-the-region-proposal-network- RPN-in-Faster-R-CNN-work.) Khi đầu vào là một ảnh có kích thước 3xWxH (2.3) Đầu ra sẽ nhận được 34xW*xH' (2.4) với W= , =1, l 16
Bước 2: Sử dụng một cửa số trượt lên tập dac trung (convolutional features)
Đề tạo ra các đề xuất khu vực, tác giả sử dụng một mạng hay còn gọi là cửa số
trượt (sliding-window) kich thuéc nxn trượt trên tập các đặc trưng, (xem Hình 2.10)
Đầu ra của mạng này là đầu vào của 2 tầng kết nối đầy đủ ( fily-connected layer)
dùng dự đoán vỊ trí của các khu vực (box-regresston layer), cũng như xác suất chứa đối tượng (box-classjficafion) của hộp dy Tại mỗi vị trí của cửa số trượt sẽ dự đoán
đồng thời nhiều các khu vực đề xuất cùng một lúc, trong đó k là số đề xuất tương ứng với mỗi vị trí của đối tượng Vậy tầng hồi quy (regreg layer) có 4k đầu ra dự đoán vị
trí của & đề xuất, tầng phan loai (c/s layer) chứa 2k dau ra du doan xac suất chứa vật
thé trong dé xuat
Trang 2819
| 2k scores | | 4k coordinates | jee anchor boxes
els layer \ f reg layer sliding window conv feature map Hình 2.10 Mạng đề xuất khu vực RPN (Nguon: https://arxiv.org/abs/1506.01497)
Đối với mỗi bức ảnh, đều sinh ra các anchors tương ứng phụ thuộc vào kích cỡ của ảnh đó, bằng cách tính giá trị trùng lặp (overlap) của anchors với khung bao
quanh của tập dữ liệu ban đầu (ground truth boxes) đề có thể xác định được anchors
đó là dương (posiive) hay âm (negaiive), (xem Hình 2.11) k anchor boxes Hinh 2.11 M6 ta cach tao ra k anchors (Ngôn: https:/deepmlml.com/rpn-explained.html)
Sau khi đã có đầu ra của các đề xuất khu vực, chúng tôi sẽ trình bày về khái
niém anchors Tại mỗi vị trí của cửa số trượt (sliding window) trén tập đặc trưng,
Trang 2920
hình chữ nhật với tỉ lệ chiều rộng, chiều dài tỉ lệ là (I:1),(1:2) (2:1), cùng với 3 kích cỡ khác nhau, như vậy k=3x3=9
Cac anchors nay sé duge gan mac la duong (positive) hoac 4m (negative) dua
vào diện tích overlap với vùng bao quanh ban đầu hay nhãn (ground truth box) theo
luật như sau
— Cac anchor durge phan loai 1a duong (positive) néu
e Là anchor có tỉ lệ diện tích chồng chéo trên diện tích chồng lấp (Intersecfion-
over- Union - viết tắt IoU) overlap lớn nhất với một khung bao quanh của tập đữ liệu ban đầu
e Là anchor có tỉ lệ IoU với một khung bao quanh ban đầu lớn hơn 0.7
— Các anchor được phân noại là âm (negafive) nếu có giá trị loU bé hơn 0.3
— Các anchor không thỏa mãn 2 điều kiện nêu trên thì bỏ qua Không được đánh giá trong quá trình huấn luyện
Lợi ích của việc tạo ra những anchors này
1 Dua phan loại cua anchor, để có thể dự đoán xác suất chứa đối tượng của đề xuất khu vực (region proposal)
2 Dựa vào khoảng cách từ anchor đến khung bao quanh ban dau, dé du đoán vi tri cua vùng bao quanh mới
2.1.2 Kiến trúc mạng huấn luyện
Thang 10 năm 2012, trong cudéc thi vé phan lép anh (image classification) trén tập dữ liệu ImageNet (dữ liệu gồm 1,2 triệu ảnh của 1000 lớp) bằng cách sử dụng mang huan luyén hoc s4u (Deep Convolutional Neural Networks) do giao su Geoffrey
Hinton và cộng sự đã thăng tuyệt đối với cách biệt lên đến 10% đến 15% so với đội
đứng vị trí thứ hai [18] Từ kết quả của nghiên cứu này, mô hình Alexet - với kiến trúc mạng sử dụng trong quá trình huấn luyện mạng trên tập dữ liệu ImageNet ra đời, đây cũng là mô hình được rất nhiều nhóm nghiên cứu sử dụng cho các bài toán khác
nhau Mới đây nhất, bằng cách cải tiễn kiến trúc mô hình Alexnet, nhóm nghiên cứu
Trang 3021
Có nhiều nhân tố dẫn đến sự bùng nồ này:
e Sura doi cua các bộ dữ liệu lớn được gán nhãn
¢ Kha nang tinh toán song song tốc độ cao của GPU « - Sự cải tiễn của các kiến trúc: GoogLeNet, VGG, ResNet
« _ Nhiều thư viện và công nghệ mới hỗ trợ việc huấn luyện mạng học sâu sử dụng
trên nền tảng của GPU như: theano, caffe, mxnet, tensorflow, pytorch,
keras,
Mang VGG16 va VGG 19
Mạng VGG viết tat cula (Visual Geometry Group) là một kỹ thuật được đề xuất
cho thử thách ImageNet năm 2014 của nhóm tác giả Karen Simonyan và Andrew Zisserman VGGNet tuy đã không giành được chiến thăng cuộc thi ImageNet 2014
nhưng vẫn được nhiều nhà nghiên cứu trong lĩnh vực học tập sâu sử dụng vì có kiến
trúc đơn giản và năm trong nhóm 5 mạng huấn luyện có độ lỗi thấp 7.3 (xem Hình 2.12) 28.2 25.8 46.4 152 layers ) 41.7 = | 22 layers 19 layers _ #8lawers Le 6.7 shallow 3.57 2010 2011 2012 2013 2014 2014 2015
AlexNet VGG GoogleNet ResNet
Hình 2.12 Kết quả ILSVRC qua các năm
(Nguon: https://github.com/PaddlePaddle/book/tree/develop/03.image_classification)
VGG cung cap hai mé hinh tuong tng voi sé tang (layer) khac nhau do 1a
VGGI6 và VGG 19 Trong mỗi mô hình đều có kiến trúc gồm có ba tầng cuối là tầng
Trang 31Le
cuối cùng có chiều là 1000 tương ứng với số lớp của bài toán phân lớp ảnh trên dữ liệu cua ImagNet [13] 224 x224x3 224x224x 64 Ah 112xj112x 128 c3? convolution+ReLU C7 max pooling 1 fully connected+ReLU f 7| softmax ¬ Hình 2.13 Kiến trúc mạng VGG16 (Nguon: https://www.cs.toronto.edu/~frossard/post/vgg16/)
Gid tri “16” va “19” cho s6 luong cdc tang trong s6 trong mang (cdc cét D va E trong Bang 2.1 bén dudi)
Bang 2.1 Mô tá của các mang lién két VGG16 va VGG19 [13] ConvNet Configuration A A-LRN B C D E 11 wetight l1] wcight 13 weight 16 weight 16 werght 19 weight
layers layers layers layers layers layers
input (224 «x 224 RGB image)
conv3-64 conv3-64 conv3-64 conv3-64 conv3-64 conv3-64 | LRN conv3-64 conv3-64 conv3-64 conv3-64
max I
conv3-128 conv3-128 conv>-128 conv3-128 conv3-128 conv3-128 | | | conv3-128 conv3-128 conv3-128 conv3-128
max} i
conv3-256 conv3-256 conv3-256 conv3-256 conv3-256 conv 3-256 conv3-256 conv3-256 conv3-256 conv3-256 conv3-256 conv 3-256 conv1-256 conv3-256 conv 3-256 conv3-256 max) 1
conv3-512 conv3-512 conv3-512 conv3-512 conv3-512 conv 3-512 conv3-512 conv3-512 conv3-512 conv3-512 conv3-512 conv3-512 convi-S512 conv3-S12 conv 3-512 conv3-512 max 1
conv3-S12 conv3-®12 conv3-`12 conv3-»12 conv3-S12 conv3-S |2 conv3-S12 conv3-512 conv3-512 conv3-S12 conv3-S12 conyv3-512 conv1-512 conv3-S12 conv3-512 conv3-512 maxpool FC-4096 FC-4096 FC-1000 soft-max
Nhược điểm của mạng VGG là tốn nhiều chỉ phí hơn để đánh giá vì sử dụng nhiều bộ nhớ, thời gian trong quá trình huấn luyện Kiến trúc mô hình sau khi huấn
Trang 322.2 Theo vết đối tượng
Theo vết dựa trên hình ảnh: phương pháp này trích xuất ra các đặc tính chung và sau đó nhóm chúng lại dựa trên thông tin ngoại cảnh ở mức cao hơn Điền hình, Intille et al (1997) dé xuat mot blob-tracker dé theo vét con ngudi trong thời gian
thực Phần khung nền được loại trừ để lấy được phần vị trí nồi bật Các khu vực nồi bật sau đó được chia thành các đốm màu dựa trên màu sắc Cách này nhanh, nhưng
nó có một bát lợi lớn về kết hợp các đôm màu khi các đối tượng tiến lại gần nhau Theo vết dựa trên đường viền (confour): Với giả thiết rằng các đối tượng được
xác định bởi các đường bao quanh với một số thuộc tính xác định Xây dựng các mô
hình dạng (đường viền), mô hình đường viền động học và các thông số hình ảnh khác trong quá trình theo vét Điền hình nghiên cứu Yezzi and Soatto (2003), Jackson et
al (2004), va Rathi et al (2005) Yezzi and Soatto (2003) dé xuat mot dinh nghia cho
sự biến dạng chuyên động và hình dạng áp dụng cho đối tượng biến dạng hay di chuyền
Theo vết dựa trên bộ lọc (# iltering): Đối tượng được biêu diễn bằng tập các điểm và các điềm này được liên kết dựa trên các ràng buộc về chuyền động vị trí của
đối tượng Hạn chế của phương pháp này là cần có một cơ chế bên ngoài để phát hiện
đối tượng trong mỗi frame Giải thuật tiêu biéu 14 Kalman Filter [19], Particle Filter [20], Mean-Shift and wavelet networks [21]
2.2.1 Theo vết đối tượng dựa trên phát hiện liên tục
Đối tượng được theo vết băng việc được phát hiện liên tục trong video Điều này đặt ra yêu cầu về tốc độ xử lý của thuật toán phát hiện của máy dò phải thực hiện
Trang 33Bang 2.2 So sánh kết quả giữa các mô hình [22] FASTER R- R-CNN FAST R-CNN CNN Thời gian kiêm tra ảnh 50 giây 2 giây 0.2 giây Tốc độ Ix 25x 250x mAP (VOC 2007) 66.0 66.9 66.9 Trong đó tiêu biêu nhất trong các mô hình thì Faster R-CNN, xem bang 2.2 Do đáp ứng được điều kiện:
-Ít tốn chỉ phí trong việc đưa ra các đề xuất khu vực chứa đối tượng
—Xác định đối tượng có độ chính xác cao và đáp ứng thời gian thực, với kết quả gần băng 0,2 giây/ khung hình Mô hình được huấn luyện trên kiến trúc mạng VGG16
(đạt độ chính xác trung bình mAP 73.2%) Kiểm tra với tập ảnh thử nghiệm với kết quả phát hiện đối tượng tốc độ đạt 0.193 giây trên mỗi khung hình [16]
Trang 34s2
2.2.2 Theo vét đối tượng dựa trên thư viện OpenCV API
Trong luận văn này chúng tôi sẽ trình bày tông quan các phương pháp, thuật toán theo vét đối tượng sử dụng của thư viện OpenCV API phiên bản 3.4 bao gồm:
Theo vết đối tượng sử dụng Boosting [6][23]
Phương pháp theo vết Boosting chủ yếu dựa trên phiên bản của AdaBoost (Adaptive Boost) được Freund và Schapire đề xuất trong những năm 1995 là một bộ phân loại mạnh phi tuyến Trong đó Adaboost hoạt động trên nguyên tắc kết hợp tuyến tính các phân lớp yếu (weak classjfier) Nghiên cứu của Viola và Jones [23]
xây dựng Adaboost dựa trên dữ liệu đầu vào là các đặc trưng Haar- Like đề hình
thành một phân lớp mạnh hơn (sírong classjfïer) theo nguyên tac cua boosting: “ting
trọng số của các mẫu bị nhận dang sai va giảm trọng số của các mẫu được nhận dạng
đúng bởi phân lớp yếu (weak classjfier) vừa xây dựng” Ý tưởng chính của Boosting
là thực hiện lặp lại nhiều lần quá trình học của bộ phân lớp yếu, nghĩa là tập trung học lại các phần tử bị phân lớp sai Sau mỗi bước lặp, các mẫu huấn luyện được dự đoán sai sẽ được đánh trọng SỐ tăng lên, các mẫu huấn luyện được dự đoán đúng sẽ được đánh trọng số nhỏ hơn Điều này giúp cho Boosting tập trung vào cải thiện độ chính xác cho các mầu được dự đoán sai sau mỗi bước lặp
Đối tượng theo vết được bao quanh bằng hộp giới hạn ban đầu do người dùng cung cấp (hoặc do máy dò cung cấp) được lấy làm mẫu tích cực của đối tượng cho
trình theo vết Đồng thời, nhiều bản mẫu vá lỗi hình ảnh bên ngoài có cùng kích thước của hộp giới hạn được coi là nên Với một khung mới, trình phân loại sẽ chạy trên mọi điềm ảnh trong vùng lân cận cua vi tri trước đó và sau đó điểm số của trình phân loại được ghi lại VỊ trí mới của đối tượng sẽ là đói tượng có điểm số tối đa Vì vậy, bây giờ chúng tôi có một ví dụ tích cực hơn cho trình phân loại Khi có thêm khung mới, trình phân loại tiếp tục cập nhật với dữ liệu bô sung này
Theo vết đối tượng sử dụng MEDIAFLOW
Trình theo vết đối tượng này trong các thử nghiệm của tác giả Arthur Amarra
[24] thì trình theo vết hoạt động tốt nhất khi chuyên động liên tục vùng phạm vi di
chuyên nhỏ và có thể dự đoán được Không giống như các trình theo vết khác tiếp
Trang 3526
này sẽ theo vét đối tượng theo cả hai chiều về phía trước và phía sau trong thời gian di chuyên của đối tượng Mục đích của việc giảm thiêu lỗi và cho phép chúng phát hiện theo vét đáng tin cậy hơn
Theo vết đối tượng sử dụng MOSSE
Phương pháp MOSSE (Minimum Output Sum of Squared Error) [25] Bao gồm
có hai thành phần chính Đó là khởi tạo và theo vết Khởi tạo một đối tượng được
chọn bằng cách sử dụng ở vài khung hình đầu tiên sau do sử dụng các bộ lọc tương
quan đề theo vết đối tượng được tạo ra từ việc khởi tạo một khung đơn Trình theo
vết MOSSE đạt hiệu tốt với các biến thê về ánh sáng, quy mô tư thế và các biên dạng không quá phức tạp Trình theo vết này cho phép bộ quá trình theo vết tạm dừng và
tiếp tục khi nó dừng lại khi đối tượng xuất hiện trở lại Trình theo vết MOSSE cũng hoạt động ở tốc độ khung hình cao hơn (450 khung hình /giây và thậm chí nhiều hơn)
Theo vết đối tượng sử dụng TLD
TLD (Tracking-Learning-Detection) [26] là một thuật toán đề theo vét các đối
tượng không xác định trong luồng video không bị giới hạn Đối tượng quan tâm được xác định bởi một hộp giới hạn trong một khung duy nhất Trình theo vết này cho phép
đồng thời theo vết đối tượng, tìm hiệu giao diện của nó và phát hiện nó bất cứ khi nào nó xuất hiện trong video Ngoài ra còn phân chia nhiệm vụ theo vết liên tục thành ba thành phần như; theo vét, học tập và phát hiện lại Bộ theo vết theo đối tượng từ
khung đến khung Máy dò bản địa hóa tất cả các lần xuất hiện đã được quan sát cho
đến nay và sửa chữa bộ theo vết nếu cần thiết Lỗi của máy dò ước tính học tập và
cập nhật nó đề tránh những lỗi này trong tương lai Đầu ra của bộ theo vết này có xu hướng nhảy xung quanh một chút Như là nếu trình theo vét đối tượng đang theo vết người đi bộ và có những người đi bộ khác trong hiện trường, trình theo vết này đôi
khi có thể tạm thời theo vết một người đi bộ khác với người đi bộ bạn định theo vết Về mặt tích cực, trình theo vét này xuất hiện đề theo vết một đối tượng trên một quy
mô lớn hơn, chuyền động, và tắc nghẽn
Theo vết đối tượng sử dụng GOTURN
GOTURN, Generic Object Tracking Using Regression Networks [27] Được giới
Trang 36ZT
các thuật toán theo vét trong lớp trình theo vết, đây là thuật toán duy nhất dựa trên mạng nơ-ron tích chập (CNN) Trình theo đõi GOTURN giải quyết vân đề theo dõi
mục tiêu duy nhất GOTURN không xử lý các trường hợp đối tượng bị che lắp biến
mắt khỏi khung hình Nhưng xử lý theo vét tốt các đối tượng trong điều kiện ánh sáng
thay đôi, biến dạng Việc triển khai GOTURN ban đầu là trong Caffe, nhưng trình
theo vét này đã được chuyền tích hợp sẵn API theo vết của OpenCV
2.3 Thư viện và công nghệ hỗ trợ
Ngôn ngữ Python
Python là một ngôn ngữ lập trình được phát hành bởi Guido Van Rossum Thiết kế bắt đầu vào cuối những năm 1980 và được phát hành lần đầu tiên vào tháng 2 năm 1991 Python cung cấp cho người dùng nhiều công cụ tính toán số với ma trận, vẽ đồ
thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác
Ngoài ra python được phát hành miễn phí, đồng thời được hỗ tốt từ cộng đồng lớn như Github
Thư viện OpenCV
OpenCV 1a viết tắt của (Open Source Computer Vision Library) OpenCV chứa hon 500 ham su dung trong thị giác máy (computer vision) QpenCV là một thư viện
mã nguồn mo (open source) http://sourceforge.net/ Thu vién duge viết bang ngon
ngữ C và C++ có thể chạy trên các hệ diéu hanh Linux, Window va Mac OS OpenCV
được thiết kế đề nâng cao hiệu suất tính toán và nhân mạnh đến hệ thong thoi gian
thực Một điều tuyệt vời nữa của OpenCV là nó đưa ra một hệ thống đơn giản, dễ sử dụng giúp mọi người nhanh chóng xây dựng các ứng dụng trong thị giác máy, kê cả
các hệ thông kiêm tra trong nhà máy, bức ảnh trong lĩnh vực y học, bảo mật, rô bốt học v v Thư viện chứa các lập trình xử lý ảnh rất đơn giản, kê cả thực thi các hàm bậc cao như dò tìm khuôn mặt, theo vết khuôn mặt, nhận dạng khuôn mặt
Kề từ khi được giới thiệu vào tháng l1 năm 1999, OpenCV đã được sử dụng trong rất nhiều ứng dụng, các sản phâm và các nghiên cứu Ví dụ trong lĩnh vực hàng không vũ trụ, bản đồ web, sử dụng giảm nhiễu trong y học, phân tích đối tượng, an
Trang 3728
xuất, xử lý camera, ứng dụng trong quân sự, hệ thông hàng không không người lái, trên mặt đất, các tàu ngầm Hiện nay thư viện này được nhiều nhà nghiên cứu sử dụng và không ngừng phát triên và được tích hợp vào nhiều công nghệ tiên tiền, (xem Hình 2.15) - Magic Leap OpenCV History rere Intel Suppo Opencv Found n os Nvidia Support Intel Support cs oe “ : Willow Suppo a ee ee seo os > se ST Se ° - — ~ AS a yw AP ~® > 5 > _& => _“ de co v2 VỀ sẽ? s“,“ s£@ sơ ope PF as? as” es v.v“ PI oF a wa 1 LS + I I | Bì i L 1 | => ụ | i l1 {| | | I | | 1 I | I | i | 1 | I | sô, So, “A “% “A “DQ “% *Q “G, `, `, `, `, `, © "2 *s PP YP ry `» CO — COC YS
Google Summer of Code
Hình 2.15 Qua trinh phat trién ciia OpenCV [28]
Có rất nhiều ứng dụng của OpenCV có thé ké đến như: phát hiện khuôn mặt,
phát hiện người, phát hiện chuyên động, thể hiện sự đa dạng của việc ứng dụng trí tuệ nhân tao (Artificial Intelligence) Ngoai ra OpenCV con gitip nang cao mét cach đáng kê các thuật toán cở bản trong thị giác máy tính cũng như các hàm API cấp thấp hơn Thực tế, nếu chúng ta năm bắt được bản chất của các phương thức làm việc trong OpenCV sẽ giúp ích rất nhiều trong việc sử dụng thư viện này
Thư viện OpenCV bao gồm nhiều giao điện đành cho C++, C, Python, Java,
MATLAB và hỗ trợ cho các hệ điều hành khác nhau như Windows, Linux, Android,
MacOS Trong phién ban OpenCV3.1, giao dién st dung cho CUDA va OpenCL cũng đã được phát triển hoàn thiện OpenCV được viết nguyên bản băng ngôn ngữ C++
Caffe [29]
Thư viện Caffe viết tắt của (Convolutional architecture for fast feature
embedding) là một công cụ được Berkeley Vision and Learning Center của trung tâm chuyên phát triển các kỹ thuật hoc s4u (Deep learning) phat triển vào năm 2014 Caffe
Trang 3829
học và máy học nâng cao Được phát triên và ứng tốt trên cả hai ngôn ngữ lập trình như Python và Matlab Caffe cũng được triển khai trên hai nền tảng xử lý chính của mày tính là CPU và GPU Ưu điểm lớn nhất của Caffe so với các nền tảng huấn luyện dữ liệu bằng phương pháp học sâu khác là tốc độ thực thi, (xem Bảng 2.3)
Bảng 2.3 Bảng so sánh hiệu suất của các gói công cụ hỗ trợ cho học sâu [29]
Core Open Pretrained
Framework License language Binding(s} CPU GPU source Training models Development
Caffe BSD ce oar, ¥ wv v v distributed
cuda-convnet unspecified C++ Python w v Y discontinued
p BSD Python ⁄ ⁄ ⁄ ⁄ discontinued
Over Feat unspecified Lua C++,Python ~ ~ centralized
Theano/Pylearn2 (4| | BSD Python 4S v ⁄ distributed
Torch7 fi} BSD Lua ¥Y vw ⁄ distributed
Do đó, Caffe được ứng dụng nhiều trong các nghiên cứu thực nghiệm và triên
khai kết hợp với các nên tảng xử lý nhanh vạ mạnh mẽ của các GPU Caffe có thê xử
lý trên 60M ảnh/ngày với một bộ xử lý NVIDIA K40 GPU [301] Kết luận chương 2
Chương 2 trình bày cơ sở lý thuyết về mô hình máy đò đối tượng và các phương
pháp theo vết đổi tượng trong thư viện tích hợp săn của OpenCV Trên cơ sở lý thuyết
Trang 3930
Chuong 3 PHUONG PHAP PHAT HIEN VA THEO VET DOI TUQNG
Trong chương này chúng tôi sử dụng quy trình phát hiện và theo vết đối tượng như sau: Trong đó ở bước đầu tiên của quá trình là thực hiện các tách khung hình từ video, bước này được xử lý bằng thư viện OpenCV Tiếp theo ở bước hai, chúng tôi
sử dụng mô hình Faster R-CNN đã được huấn luyện đề phát hiện và theo vét đối tượng, được áp dụng trên một đôi tượng và cho nhiều đối tượng, (xem Hình 3.1) O
ngữ cảnh khác (xem Hình 3.2) chúng tôi sử dụng Faster R-CNN làm công cụ máy dò đề phát hiện đối tượng và sử dụng kết hợp với trình theo vết đối tượng của thư viện OpenC`V
3.1 Theo vết đối tượng dựa trên rpn cúa Faster R-CNN
Đề triên khai giải thuật theo vét đối tượng theo phương pháp vừa nêu Trong luận văn này chúng tôi sử dụng quy trình theo vét đối tượng theo các bước được minh
họa như sau:
hes Video dau vao sé duge tach thanh cdc khung hinh (frame images)
Trang 4031
Trong phương pháp này chúng tôi sử dụng hiệu quả và hiệu suất phát hiện nhanh đối tượng của Faster R-CNN đề áp dụng giải quyết bài toán theo vét đối tượng trong video
Chúng tôi áp dụng mô hình Faster R-CNN với kiến trúc mạng VGG huấn luyện đề làm mô hình phát hiện nhanh đối tượng trong video Do đối tượng được phát hiện
liên tục dưới 0.2 giây [22] trên một khung hình vì thế chúng tôi tận dụng kết quả này
để giải quyết bài toán theo vét đối tượng
3.2 Theo vết đối tượng dựa trên kết hợp máy dò Faster R-CNN và thư
viện theo vết của OPENCV API
Trong phần này chúng tôi trình bày phương pháp theo vết đối tượng bằng cách sử dụng Faster R-CNN làm công cụ máy dò và kết hợp các trình theo vết của thư viện OpenCV API: KEC, TLD, Goturn Đề giải quyết bài toán theo vết đối tượng (xem
Hình 3.2) minh họa quá trình theo vết
hes Video dau vao sé duge tach thanh cdc khung hinh (frame images)
2 Tiền xử lý giảm kích thước anh
3, Phát hiện đối tượng bằng máy dò Faster R-CNN
4 Theo vết đối tượng Input Output Video Video 4
Tach Frame May do Thuật toán theo vết