LỜI NÓI ĐẦUTrí tuệ nhân tạo AI đang là xu hướng phát triển có nhiều tiềm năng trong lĩnh vựccông nghệ thông tin, nắm giữ vai trò chủ đạo trong dòng chảy công nghệ hiện đại vớinhiều
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH
Sinh viên thực hiện : Nguyễn Duy Sỹ
Nguyễn Thị Nguyệt Minh
Đà Nẵng, tháng 12, năm 2021
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH
Sinh viên thực hiện : Nguyễn Duy Sỹ
Nguyễn Thị Nguyệt Minh
Đà Nẵng, tháng 12, năm 2021
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Chữ ký của giảng viên hướng dẫn ………
Trang 4MỤC LỤC
LỜI CẢM ƠN 6
LỜI NÓI ĐẦU 7
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 8
1.1 Giới thiệu về đề tài 8
1.2 Lý do chọn đề tài 8
1.3 Mục đích của đề tài 9
1.4 Vấn đề cần giải quyết 9
1.5 Đề xuất nội dung thực hiện 9
1.6 Tổng quan về xử lý ảnh 10
1.6.1 Xử lý ảnh là gì? 10
1.6.2 Các quá trình của xử lý ảnh 10
1.6.3 Những vấn đề cơ bản trong hệ thống xử lý ảnh 12
1.7 Giới thiệu về python 15
1.8 Giới thiệu về các thư viện 16
1.8.1 Tổ chức thư viện OpenCV 17
1.8.2 Hàm cho một số chức năng cụ thể 18
1.9 Tìm hiểu về Flutter 19
1.9.1 Ngôn ngữ DART là gì? 19
1.9.2 Những thành phần chính trong Flutter 20
1.9.3 Những tính năng của Flutter 20
1.9.4 Ưu và nhược điểm của Flutter 20
CHƯƠNG 2 TÌM HIỂU VÀ PHÂN TÍCH THUẬT TOÁN 22
2.1 Công nghệ nhận diện và xử lí hình ảnh 22
2.1.1 Công nghệ nhận diện hình ảnh là gì? 22
2.1.2 Mục đích chính của việc sử dụng công nghệ hình ảnh 22
2.1.3 Các kỹ thuật xử lý hình ảnh kỹ thuật số phổ biến hiện nay 23
Trang 52.2 Tổng quan về Yolov5 24
2.2.1 Kiến trúc mạng YOLO 25
2.2.2 Nguyên lý hoạt động của mạng YOLO 27
2.2.3 Output của YOLO 27
2.2.4 Dự báo trên nhiều feature map 28
2.2.5 Anchor box 29
2.2.6 Hàm mất mát ( Loss Function) 31
2.2.7 Dự báo bounding box 33
2.2.8 Thuật toán sử dụng trong YOLOv5 35
2.3 Tìm hiểu về Rest API 37
2.3.1 REST API là gì? 37
2.3.2 Chức năng của REST API là gì? 38
2.3.3 Quy trình hoạt động của REST API là gì? 39
CHƯƠNG 3 TRIỂN KHAI VÀ DEMO SẢN PHẨM 42
3.1 Cài đặt môi trường 42
3.1.1 Python và Visual studio 42
CHƯƠNG 4 ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 43
4.1 Đánh giá kết quả đạt được: 43
4.2 Hướng phát triển đề tài: 44
4.3 Kết luận 44
TÀI LIỆU THAM KHẢO 45
Trang 6MỤC LỤC HÌNH ẢNH
Hình 1 1 Nhận diện hình ảnh 4
Hình 1 2 Quá trình xử lý ảnh 5
Hình 1 3 Các thành phần cơ bản của hệ thông xử lý ảnh 8
Hình 2 1 Những tác dụng của việc sử dụng nhận dạng hình ảnh 18
Hình 2 2 Kiến trúc mạng YOLO 20
Hình 2 3 Các layer trong mạng darknet-53 21
Hình 2 4 Cách hoạt động của mạng YOLO 22
Hình 2 5 Công thức ngõ ra 22
Hình 2 6 Kiến trúc một output của model YOLO 23
Hình 2 7 Các feature maps của mạng YOLOv3 24
Hình 2 8 Xác định anchor box cho một vật thể 25
Hình 2 9 Khi 2 vật thể người và xe trùng mid point và cùng thuộc một cell 26
Hình 2 10 Tính tốn Loss Function cho 2 object: tam giác và hình thoi 27
Hình 2 11 Công thức ước lượng bounding box từ anchor box 29
Hình 2 12 So sánh kích thước lưu trữ Model của các mẫu mã YOLOv5 31
Hình 2 13 So sánh độ trễ trung bình giữa các phiên bản YOLO(v3,v4,v5) 31
Hình 2 14 Cấu trúc nhận diện vật thể của YOLOv5 32
Hình 2 15 Rest API là gì? 33
Hình 2 16 Cách thức hoạt động Rest AIP 34
Hình 3 1 Cài đặt python 38
Hình 3 2 Thiết kế giao diện ứng dụng 38
Hình 3 6 Giao diện thông tin chi tiết 39
Hình 3 3 Giao diện thông tin các loài 39
Hình 3 4 Giao diện trang hính 39
Hình 3 5 Giao diện quét con vật 39
Trang 7LỜI CẢM ƠN
Trên thực tế không có sự thành công nào mà không gắn liền với những sự hỗ trợ,giúp đỡ dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác Trong suốt quãngthời gian từ khi bắt đầu học tập tại giảng đường Trường Đại học Công nghệ thông tin vàTruyền thông Việt Hàn - Đại học Đà Nẵng, chúng tôi đã nhận được rất nhiều sự quantâm, giúp đỡ của thầy cô và các bạn
Với lòng biết ơn sâu sắc nhất, nhóm chúng tôi xin gửi lời cảm ơn chân thành tớitoàn thể các thầy cô giáo trong khoa Công nghệ thông tin và truyền thông Đại học ViệtHàn, những người đã dạy dỗ và truyền đạt vốn kiến thức vô cùng quý báu của mình chochúng tôi trong suốt quãng thời gian học tại đây Những tình cảm và kiến thức mà thầy
cô đã gửi trao cho chúng tôi sẽ là hành trang cho chúng tôi để bước đi trên những đoạnđường tương lai
Nhóm chúng tôi cũng xin gửi lời cảm ơn sâu sắc tới Thầy Trần Văn Đại, người đãtận tình hỗ trợ và dẫn dắt nhóm chúng tôi trong suốt quá trình thực hiện đồ án để cóđược kết quả một cách tốt nhất
Một lần nữa nhóm chúng tôi xin được chân thành cảm ơn!
Trang 8LỜI NÓI ĐẦU
Trí tuệ nhân tạo (AI) đang là xu hướng phát triển có nhiều tiềm năng trong lĩnh vựccông nghệ thông tin, nắm giữ vai trò chủ đạo trong dòng chảy công nghệ hiện đại vớinhiều ứng dụng trong mọi lĩnh vực của đời sống xã hội như trợ lí ảo, nhà thông minh, xetự lái, các hệ thống nhận diện,… Nhận diện khuôn mặt là một là một lĩnh vực nghiêncứu của ngành thị giác máy tính, và cũng được xem là một lĩnh vực nghiên cứu củangành sinh trắc học tương tự như nhận dạng vân tay, hay nhận dạng mống mắt
Nhận dạng hay nhận biết là một trong những khả năng của con người cũng như cácloài vật, theo một cách bản năng nhất của loài vật qua cảm nhận từ các cơ quan nhưmắt, mũi, miệng, bằng hành động nhìn nghe ngửi… có thể cảm nhận được ngay đượcđối tượng đang tiếp xúc với mình là cái gì quen hay lạ Chính vì vậy, có thể nói rằng cơthể của mỗi loài vật chính là một hệ thống nhận dạng tối ưu nhất
Với sự phát triển của khoa học công nghệ đặc biệt là khoa học về robot thì ngàycàng mong ước tạo ra một nhận dạng máy học có khả năng tương tự và vượt trội hơn hệthống nhận dạng sinh học là một khát khao cháy bỏng của các nhà khoa học
Một hệ thống nhân dạng đối tượng là một hệ thống nhận vào một ảnh hoặc mộtđoạn video (một chuỗi các ảnh) Qua xử lý tính toán hệ thống xác định được vị trí đốitượng trong ảnh (nếu có) là đối tượng nào trong số đối tượng hệ thống đã biết (qua quátrình học) hay là đối tượng mới Yêu cầu đặt ra đối với hệ thống nhận dạng đối tượng là
độ chính xác cao, vì vậy hệ thống đòi hỏi phải có các đặc trưng tốt Hệ thống phải chọnđặc trưng nào để biểu diễn tốt một thông tin đối tượng cần nhận dạng Đồng thời đặctrưng phải được tính toán nhanh để không làm chậm quá trình nhận dạng Thêm vào đó
hệ thống phải có phương pháp học hiệu quả, có khả năng nhận biết được các mẫu mớichứ không chỉ làm tốt trên những mẫu đã học
Đồ án môn học của chúng tôi gồm 4 chương:
Chương 1: Tổng quan về đề tài
Chương 2: Cơ sở lý thuyết
Chương 3: Phân tích
Chương 4: Đánh giá kết quả đạt được và hướng phát triển
Trang 9CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu về đề tài
Ngày nay, cùng với những tiến bộ vượt bậc của khoa học kỹ thuật nói chung, bộmôn khoa học xử lý ảnh đã và đang thu được những thành tựu lớn lao và chứng tỏ vaitrò không thể thiếu với những ứng dụng sâu rộng trong khoa học kỹ thuật cũng như đờisống xã hội Một bộ phận của khoa học xử lý ảnh là lĩnh vực thị giác máy tính hiện đangthu hút rất nhiều sự quan tâm của các nhà nghiên cứu xử lý ảnh với mục tiêu xây dựngnên một thế giới trong đó hệ thống thị giác kỳ diệu của con người có thể được môphỏng bởi các hệ thống máy tính, đem lại khả năng cảm nhận bằng thị giác cho các hệthống về môi trường xung quanh Mơ ước về một hệ thống máy tính có thể hoà nhậpvào thế giới con người với đầy đủ các giác quan trong đó thị giác đóng vai trò quantrọng đang dần dần được hiện thực hoá với những đóng góp nghiên cứu của các nhàkhoa học trên phạm vi toàn thế giới
1.2 Lý do chọn đề tài
Trẻ em là mầm non của đất nước, mỗi đứa trẻ đều có quyền được học tập và vuichơi lành mạnh Nhưng làm sao để bé vừa chơi vừa học, vừa được phát triển cả về trítuệ, cảm xúc và thể chất ln là mối bận tâm hàng đầu của các bậc phụ huynh Giai đoạn
từ 0 đến 6 tuổi là chương đầu tiên trong cuộc đời một đứa trẻ cho đến lúc trưởng thành
Đó là giai đoạn bé nhìn thế giới với con mắt đầy sự tị mị Trong khi đó, với nhịp sốngngày càng bận rộn, thời gian cha mẹ ở sát bên quan sát con lại càng ít, độ phức tạp vàlượng kiến thức của việc ni dạy trẻ thì lại càng tăng lên
Trong vài năm trở lại đây, Object detection là một trong những đề tài rất hot củadeep learning bởi khả năng ứng dụng cao, dữ liệu dễ chuẩn bị và kết quả ứng dụng thìcực kì nhiều Các thuật toán mới của Object detection như YOLO, SSD có tốc độ khánhanh và độ chính xác cao nên giúp cho Object Detection co thể thực hiện được các tác
vụ dường như là real time, thậm chí là nhanh hơn so với con người mà độ chính xáckhông giảm Các mô hình cũng trở nên nhẹ hơn nên co thể hoạt động trên các thiết bịIoT để tạo nên các thiết bị thông minh
Với những lý do đó, nhóm đã suy nghĩ và muốn xây dựng một ứng dụng đa nềntảng kết hợp giữa việc học và chơi cho trẻ Nhằm thu hút trẻ tiếp cận những thông tincần thiết, giúp bé tìm hiểu các thông tin về các loài động vật một cách hấp dẫn nhất.Đây là nơi các bé có thể học những kiến thức cơ bản thông qua các game sống động, vui
Trang 10tươi, các câu truyện thú vị hay các video độc đáo Chính vì vậy, nhóm đã chọn đề tài “Xây dựng ứng dụng bé yêu động vât” để thực hiện đồ án lần này.
1.3 Mục đích của đề tài
Xây dựng một phần mềm ứng dụng đa nền tảng nhận diện động vật
Tìm hiểu về một số thư viện như opencv, phần mềm visual studio code, flutter
Tìm hiểu các phương pháp nhận diện khuôn mặt( Face Detection)
Tìm hiểu về các phương pháp xử lý ảnh
Xây dựng một số trò chơi cơ bản về động vật trong ứng dụng
1.4 Vấn đề cần giải quyết
Hệ thống nhận động vật là một ứng dụng máy tính tự động xác định hoặc nhận dạngmột người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình video từ mộtnguồn video Một trong những cách để thực hiện điều này là so sánh các đặc điểmkhuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn mặt
Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được sosánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay tròng mắt
Từ đó thu thập, phân tích các tài liệu về nhận dạng khuôn mặt, tìm hiểu các phươngpháp nhận dạng khuôn mặt, nghiên cứu các công cụ xây dựng hệ thống
1.5 Đề xuất nội dung thực hiện
Hình 1 1 Nhận diện hình ảnh
Đối với đề tài Tìm hiểu, nghiên cứu và thực hiện xây dựng hệ thống nhận diện cáccon vật quen thuộc, giúp hỗ trợ trẻ em học hỏi tìm hiều thêm về động vật Việc hệ thống
có thể nhận dạng chính xác là một việc quan trọng Đối với đề tài này, chúng em thực
Trang 11hiện xây dựng hệ thống nhận diện gương mặt sử dụng Deep learning với khả năng
“Nhận dạng động vật nhanh chóng và chính xác” và xây dựng trên đa nền tảng
Với hệ thống này, chúng em sẽ sử dụng các thư viện được cung cấp bởi PIP trongpython và sử dụng Visual Studio Code để lập trình
1.6 Tổng quan về xử lý ảnh
1.6.1 Xử lý ảnh là gì?
Xử lý ảnh (XLA) là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trìnhbiến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốn củangười sử dụng Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đối tượng, làmtăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá trình biên dịch cácthông tin hình ảnh của ảnh
Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin học ứngdụng Xử lý dữ liệu bằng đồ họa đề cập đến những ảnh nhân tạo, các ảnh này được xemxét như là một cấu trúc dữ liệu và được tạo bởi các chương trình Xử lý ảnh số bao gồmcác phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên Mụcđích của xử lý ảnh gồm:
Biến đổi ảnh làm tăng chất lượng ảnh
Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh
Nhận biết và đánh giá các nội dung của ảnh là sự phân tích một hình ảnh thànhnhững phần có ý nghĩa để phân biệt đối tượng này với đối tượng khác, dựa vào đó ta cóthể mô tả cấu trúc của hình ảnh ban đầu Có thể liệt kê một số phương pháp nhận dạng
cơ bản như nhận dạng ảnh của các đối tượng trên ảnh, tách cạnh, phân đoạn hình ảnh,…
Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhậndạng chữ trong văn bản
1.6.2 Các quá trình của xử lý ảnh
Hình 1 2 Quá trình xử lý ảnh
Trang 12Sơ đồ này gồm các thành phần sau:
a) Phần thu nhận ảnh (Image Acquisition)
Ảnh có thể nhận qua camera màu hoặc đen trắng Thường ảnh nhận qua camera làảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng), cũng cóloại camera đã số hoá (như loại CCD – Charge Coupled Device) là loại photodiode tạocường độ sáng tại mỗi điểm ảnh
Camera thường dùng là loại quét dòng ; ảnh tạo ra có dạng hai chiều Chất lượngmột ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phongcảnh)
b) Tiền xử lý (Image Processing)
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý
để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, tăng độ tươngphản để làm ảnh rõ hơn, nét hơn
c) Phân đoạn (Segmentation) hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễnphân tích, nhận dạng ảnh Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thưcho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người thànhcác từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng Đây là phần phức tạpkhó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh Kếtquả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này
d) Biểu diễn ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộngvới mã liên kết với các vùng lân cận Việc biến đổi các số liệu này thành dạng thích hợp
là cần thiết cho xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnhgọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnhdưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này vớiđối tượng khác trong phạm vi ảnh nhận được
e) Nhận dạng và nội suy ảnh (Image Recognition and Interpretation)
Nhận dạng ảnh là quá trình xác định ảnh Quá trình này thường thu được bằng cách
so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước Nội suy là phán đoán theo ýnghĩa trên cơ sở nhận dạng Có nhiều cách phân loại ảnh khác nhau về ảnh Theo lý
Trang 13thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạngảnh cơ bản:
Nhận dạng theo tham số
Nhận dạng theo cấu trúc
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoahọc và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạngvăn bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…
f) Cơ sở tri thức (Knowledge Base)
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối,dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiềukhâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảotiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theocách của con người Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo cácphương pháp trí tuệ con người Vì vậy, ở đây các cơ sở tri thức được phát huy
1.6.3 Những vấn đề cơ bản trong hệ thống xử lý ảnh
a) Điểm ảnh (Picture Element)
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng Để xử lý bằngmáy tính (số), ảnh cần phải được số hoá Số hoá ảnh là sự biến đổi gần đúng một ảnhliên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mứcxám) Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phânbiệt được ranh giới giữa chúng Mỗi một điểm như vậy gọi là điểm ảnh (PEL: PictureElement) hay gọi tắt là Pixel Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa
độ (x, y)
Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặcmàu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợpsao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh
số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
b) Mức xám của ảnh
Mức xám của điểm ảnh: là cường độ sáng của nó được gán bằng giá trị số của nó
tại điểm đó
Điểm ảnh (pixel): là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc
màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp
Trang 14sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh
số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh
Độ phân giải của ảnh: Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh
được ấn định trên một ảnh số được hiển thị Khoảng cách giữa các điểm ảnh phải đượcchọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cáchthích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theotrục x và y trong không gian hai chiều
Các thang giá trị mức sáng thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức
phổ dụng Lư do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mứcxám dùng 1 byte biểu diễn: 2 8=256 mức, tức là từ 0 đến 255)
Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức
xám ở các điểm ảnh có thể khác nhau
Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt tức dùng 1 bit mô tả 21 mức
khác nhau Nói cách khác: mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1
Ảnh màu: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên thế
giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu:28*3=224≈ 16,7 triệu màu
c) Các thành phần cơ bản của hệ thống xử lý ảnh
Hình 1 3 Các thành phần cơ bản của hệ thông xử lý ảnh
Thiết bị thu nhận ảnh: Là thiết bị biến đổi quang điện, cho phép biến đổi hình ảnh
quang học thành tín hiệu dưới dạng analog hay trực tiếp dưới dạng số Có nhiều dạngcảm biến cho phép làm việc với ánh sáng nhìn thấy hoặc hồng ngoại Hai loại thiết bịbiến đổi quang – điện chủ yếu thường được sử dụng là đèn ghi hình điện tử và chipCCD (Charge Coupled Device – linh kiện ghép điện tích)
Bộ xử lý ảnh chuyên dụng: Sử dụng chip xử lý ảnh chuyên dụng, có khả năng thực
hiện nhanh các lệnh trong xử lý ảnh Cho phép thực hiện các quá trình xử lý ảnh như
Trang 15lọc,làm nổi đường bao, nén và giải thích video v.v Trong bộ xử lý thường thường tíchhợp hợp bộ nhớ đệm có tốc độ cao.
Bộ nhớ trong và bộ nhớ ngoài: Trong các hệ thống xử lý ảnh số thường có dung
lượng rất lớn dùng để lưu trữ ảnh tĩnh và động dưới dạng số.Bộ nhớ số trong hệ thống
Bộ nhớ dùng để lưu trữ dữ liệu Loại bộ nhớ này thường có dung lượng lớn, tốc
độ truy cập không cao.Thông dụng là đĩa quang ghi 1 lần (ROM) hoặc nhiều lần (ROM)như đĩa DVD có dung lượng 4.7 GB(một mặt )
Ngoài ra trong hệ thống xử lý ảnh còn sử dụng các thiết bị cho phép lưu ảnh trêncác vật liệu khác như giấy in, công nghệ nung nóng v.v
Màn hình hiển thị: Hệ thống biến đổi điện –quang hay đèn hình ( đen trắng cũng
như màu) có nhiệm vụ biến đổi tín hiệu điện có chứa thông tin của ảnh (tín hiệu video)thành hình ảnh trên màn hình Có hai dạng display được sử dụng rộng rãi là đèn hìnhCRT ( Cathode – Ray Tube ) và màn hình tinh thể lỏng LCD (Liquid Crystal Display).Đèn hình CRT thường có khả năng hiển thị màu sắc tốt hơn màn hình LCD nên đượcdùng phổ biến trong các hệ thống xử lý ảnh chuyên nghiệp
Máy tính: Có thể là máy tính để bàn cũng như siêu máy tính có chức năng điều
khiển tất cả các bộ phận chức năng trong hệ thống xử lý ảnh số
d) Các khái niệm về đường viền ảnh, biên ảnh và vùng bao lồi của ảnh
Đường viền ảnh(border) của một vùng ảnh R là tập hợp các điểm ảnh trong vùng
đó mà có 1 hay nhiều lân cận bên ngoài vùng ảnh R
Biên ảnh: một điểm ảnh có thể coi là biên nếu ở đó có sự thay đổi đột ngột về mức
xám.tập hợp các điểm biên tạo thành đường bao của ảnh
Vùng bao lồi: Được sử dụng để mô tả các thuộc tính hình học của đối tượng.Vùng
bao lồi là vùng nhỏ nhất chứa đối tượng, sao cho bất kỳ điểm ảnh nào của vùng đều cóthể được nối với nhau bởi 1 đường thẳng, và tất cả các điểm ảnh đó đều thuộc vào vùng
e) Các thiết bị thu nhận ảnh và một số quy trình khác
Trang 16Các thiết bị thu nhận ảnh: Bộ cảm biến ảnh camera, màn hình video, máy tính.
Các thiết bị thu nhận ảnh bao gồm camera, scanner các thiết bị thu nhận này có thể choảnh đen trắng Các thiết bị thu nhận ảnh có 2 loại chính ứng với 2 loại ảnh thông dụngRaster, Vector Các thiết bị thu nhận ảnh thông thường Raster là camera các thiết bị thunhận ảnh thông thường Vector là sensor hoặc bàn số hoá Digitizer hoặc được chuyểnđổi từ ảnh Raster Nhìn chung các hệ thống thu nhận ảnh thực hiện 1 quá tŕnh Cảmbiến: biến đổi năng lượng quang học thành năng lượng điện Tổng hợp năng lượng điệnthành ảnh
Số hóa ảnh: Ảnh thu vào được từ các thiết bị thu nhận ảnh có thể là ảnh tương tự
hoặc ảnh số.Trong trường hợp ảnh tương tự, chúng ta phải tiến hành quá trình số hóaảnh để có thể xử lý được bằng máy tính
Quá trình lượng hóa: Lượng tử hóa về mặt biên độ (độ sáng) cho dòng ảnh vừa
được rời rạc hóa
Lấy mẫu là một quá tŕnh, qua đó ảnh được tạo nên trên một vùng có tính liên tục
được chuyển thành các giá trị rời rạc theo tọa độ nguyên Quá tŕnh này gồm 2 lựa chọn:Một là khoảng lấy mẫu Hai là cách thể hiện dạng mẫu Lựa chọn thứ nhất được đảmbảo nhờ lư thuyết lấy mẫu của Shannon Lựa chọn thứ hai liên quan đến độ đo (Metric)được dùng trong miền rời rạc
1.7 Giới thiệu về python
Python là một ngôn ngữ mạnh và dễ học Python có tính hiệu quả rất cao với cáccấu trúc dữ liệu và đơn giản nhưng lại rất hữu dụng với ngôn ngữ lập trình hướng đốitượng Cú pháp Python gọn gàng và có tính năng gõ động, cùng với tính diễn dịch tựnhiên, làm Python là một ngôn ngữ lý tưởng dành cho viết kịch bản và phát triển nhanhchóng trong nhiều lĩnh vực trên nhiều nền tảng khác nhau
Python có nhiều tính năng như:
- Đơn giản: Python là ngôn ngữ đơn giản Đọc một chương trình Python có cảmgiảm như đọc tiếng Anh, mặc dù ở dạng rút gọn Tính tự nhiên của mã giả trong Python
là một trong các điểm mạnh nhất của ngôn ngữ này Điều này giúp cho lập trình viêntập trung vào giải pháp giải quyết vấn đề hơn là tập trung vào ngôn ngữ
- Dễ học: Python dễ học vì có cú pháp cực kỳ đơn giản
- Miễn phí và mã nguồn mở: Python là một ví dụ của FLOSS (Free/Libre and OpenSource Software) Vì vậy bạn có thể tự do phân phối bản sao chép các phần mềm,
Trang 17chương trình mới Một trong những lý do Python là ngôn ngữ mạnh vì nó được cộngđồng thường xuyên phát triển và nâng cấp.
- Ngôn ngữ bậc cao: Khi sử dụng Python, bạn sẽ không bao giờ phải để ý các chitiết mức thấp như quản lý bộ nhớ cho chương trình của bạn và vân vân
- Khả năng bỏ túi: Do tính tự nhiên mã mở của Python, Python cũng xây dựng chạytrên các nền tảng khác nhau Bạn có thể sử dụng Python trên GNU/Linux, Windows,FreeBSD, Macintosh, Solaris, OS/2, Amiga, AROS, Á/400,BeOS, OS/390, z/OS, Palm
OS, QNX, VMS, Psion, Acorn RÍC OS, VxWorks, PlayStation, Sharp Zaurus,Windows CE và PocketPC Bạn có thể dùng một nền tảng như Kivy để tạo các trò chơitrên máy tính dành cho iPad, và Android
- Diễn dịch: Khi một chương trình được viết bằng ngôn ngữ biên dịch như (C hoặcC++) thì nó được chuyển đổi từ mã ngôn ngữ (C/C++) thành ngôn ngữ máy tính có hiểuđược bằng cách dùng một trình biên dịch với các chức năng và các cờ khắc nhau Tráilại, Python không cần biên dịch ra nhị phân Chương trình viết bằng Python chạy trựctiếp bằng mac nguồn Cụ thể, Python sẽ chuyển mã nguồn thành một dạng trung gianthành ngôn ngữ mà máy tính có thể hiểu được
- Hướng đối tượng: Python là ngôn ngữ hỗ trợ cho lập trình hướng đối tượng lẫn cảlập trình thủ tục Nếu so sánh với C++ hoặc Java, Python rất mạnh nhưng cực kỳ đơngiản để thực hiện lập trình hướng đối tượng
- Tính mở rộng: Nếu bạn cần một đoạn mã chạy nhanh hoặc một vài thuật toánđóng, bạn có thể lập trình ở C/C++ và sau đó sử dụng nó cho chương trình Python.Python cho phép tích hợp các chương trình ở các ngôn ngữ khác
- Khả năng nhúng: Bạn có thể nhúng Python bên trong chương trình C/C++ đẻmang lại các khả năng kịch bản cho người dùng chương trình
- Thư viện mở rộng: Thư viện tiêu chuẩn Python thì rất lớn Thư viện giúp bạn làmnhiều thứ khác nhau liên quan đến biểu thức chính quy, giao tài liệu, tiến trình/tiểutrình, database, trình duyệt web, CGI, FTP, email, XML, XML-RPC, HTML, tập tinWAV, mã hóa, GUI, và các phần khác Tất cả thứ này đều sẵn có khi cài đặt Python
1.8 Giới thiệu về các thư viện
Opencv (Open Computer Vision library) do Intel phát triển, được giới thiệu năm
1999 và hoàn thiện thành phiên bản 1.0 năm 2006 Thư viện opencv – gồm khoảng 500hàm – được viết bằng ngôn ngữ lập trình C và tương thích với các hệ điều hành
Trang 18Windows, Linux, Mac OS… đóng vai trò xác lập chuẩn giao tiếp, dữ liệu, thuật toáncho lính vực CV và tọa điều kiện cho mọi người tham gia nghiên cứu và phát triển ứngdụng
Trước Opencv không có một công cụ chuẩn nào cho lĩnh vực xử lí ảnh Các đoạncode đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không ổn định.Các bộ công cụ thương mại như Matlab, Simulink, v.v lại có giá cao chỉ thích hợp chocác công ty phát triển các ứng dụng lớn Ngoài ra còn có các giải phảp kèm theo thiết bịphần cứng mà phần lớn là mã đóng và được thiết kế riêng cho tứng thiết bị, rất khó khancho việc mở rộng ứng dụng
OpenCV là công cụ hữu ích cho những người bước đầu làm quen với xử lí ảnh số vìcác ưu điểm sau:
OpenCV là công cụ chuyên dụng: được Intel phát triển theo hướng tối ưu hóacho các ứng dụng xử lí và phân tích ảnh, với cấu trúc dữ liệu hợp lí, thư viện tạogiao diện, truy xuất thiết bị phần cứng được tích hợp sẵn OpenCV thích hợp đểphát triển nhanh ứng dụng
OpenCV là công cụ mã nguồn mở: Không chỉ là công cụ miễn phí, việc đượcxây dựng trên mã nguốn mở giúp OpenCV trở thành công cụ thích hợp chonghiên cứu và phát triển, với khả năng thay đổi và mở rộng các mô hình, thuậttoán
OpenCV đã được sử dụng rộng rãi: Từ năm 1999 đến nay, OpenCV đã thu hútđược một lượng lớn người dung, trong đó có các công ty lớn như Microsoft,IBM, Sony, Siemens, Google và các nhóm nghiên cứu ở Standford, MIT, CMU,Cambridge,… Nhiều forum hỗ trợ và cộng đồng người dung đã được thành lập,tạo nên kênh thông tin rộng lớn, hữu ích cho việc tham khảo, tra cứu
1.8.1 Tổ chức thư viện OpenCV
CXCORE chứa các định nghĩa kiểu dữ liệu cơ sở Ví dụ, các cấu trúc dữ liệu choảnh, điểm và hình chữ nhật được định nghĩa trong cxtypes.h
CXCORE cũng chứa đại số tuyến tính và phương pháp thống kê, chức năng duy trì
và điều khiển chuỗi Một số ít, các chức năng đồ họa để vẽ trên ảnh cũng được đặt ởđây
CV chứa các thuật toán về xử lý ảnh và định kích cỡ camera Các chức năng hìnhhọa máy tính cũng được đặt ở đây
Trang 19CVAUX được mô tả trong tài liệu của OpenCV như chứa các mã cũ và thứ nghiệm.Tuy nhiên, các giao diện đơn cho sự nhận diện ảnh ở trong module này Code sau nàychúng được chuyên dụng cho nhận diện mặt và chúng được ứng dụng rộng rãi cho mụcđích đó
- HIGHGUI và CVCAM được đặt trong cùng thư mục là “otherlibs”
+ HIGHGUI : chứa các giao diện vào ra cơ bản, nó cũng chứa các khả năng cửa sổ
- Truy xuất ảnh và phim: đọc ảnh số từ camera, từ file, ghi ảnh và phim
- Cấu trúc dữ liệu ảnh số và các dữ liệu hỗ trợ cần thiết: ma trận, vector, chuỗi, xâu
và cây
- Xử lí ảnh căn bản: các bộ lọc có sẵn, tìm chi tiết cạnh, góc, chỉnh đổi màu, phóng
to thu nhỏ, và hiệu chỉnh histograms
- Xử lí cấu trúc: tìm viền, nhận chuyển động, thay đổi trong không gian 3D, đốichiếu bản mẫu, xấp xỉ các đơn vị hình học cơ sở - mặt phẳng, đa giác, ellipse, đườngthẳng
- Phân tích dữ liệu ảnh: nhận dạng thực thể, theo dõi các chi tiết và phân tíchchuyển động
- Tạo giao diện đơn giản: hiển thị ảnh, thao tác bàn phím, chuột, thanh trượt đểchỉnh thông số (nếu cần thiết các bạn có thể tự tạo thêm các phím điều khiển thông quathao tác chuột, hoặc tích hợp thêm các thư viện về giao diện như wxWidgets)
- Chức năng vẽ, chú thích lên ảnh
Trang 20• cvNamedWindow(): Thiết lập cửa sổ để hiện thị ảnh
• cvShowImage(): Hiển thi ảnh
• cvWaitKey(0): Chờ bấm phím bất kỳ để kết thúc chương trình
• cvReleaseImage( ): Xóa ảnh
• cvDestroyWindow( ): Xóa cửa sổ
b) Chức năng Lọc Nhiễu.
• cvCreateImage(): Tạo 1 ảnh mới có các thông số tương ưng với ảnh gốc
• cvSmooth(): Thưc hiện bộ lọc trung bình
• cvNamedWindow(): Tạo cửa sổ hiển thị ảnh Nhận dạng ảnh sử dụng thuật toán
c) Đổi màu ảnh
• cvCvtColor(): Đổi màu ảnh
d) Đọc ảnh từ VIDEO
• cvNamedWindow( ): Tạo cửa sổ để hiển thị ảnh
• CvCapture: Cấu trúc chứa thông tin của File AVI
• cvCreateFileCapture(): Lấy thông số từ File Avi được Load hệ thống sẽ đọc cácảnh từ đoạn VIDEO và xếp chúng thành một dãy các ảnh động liên tiếp nhau nên tacũng có cảm giác như đang xem một VIDEO
e) Đọc ảnh từ Camara
• cvCreateCameraCapture(0): Hoạt động tương tự như hàm
• cvCreateFileCapture(): Webcam máy tính sẽ bật lên,hệ thống sẽ nhận ảnh từCAMERA
Trang 21Vào năm 2018, Dart bị trang Codementor.io xếp vào top một trong những ngôn ngữkhông nên học! Với sự cố gắng của đội ngũ phát triển, Dart nhanh chóng trở thành mộttrong những ngôn ngữ được quan tâm và sử dụng nhiều nhất Từ đó, khiến bộ đôiFlutter/ Dart “nổi đình nổi đám” như hiện nay.
Đây là một ví dụ điển hình về sự hỗ trợ tối đa trong việc code, đặc biệt là trong 2phần mềm: Android Studio và Visual Studio Code
Dart hỗ trợ cực tốt để phát triển Front end và bạn cũng có thể sử dụng Dart để thiết
kế ứng dụng di động lẫn ứng dụng web cực kỳ tốt!
1.9.2 Những thành phần chính trong Flutter
Flutter có 2 thành phần quan trọng nhất bao gồm:
Framework (UI Library based on widgets): đây là tập hợp của các thànhphần UI có thể tùy biến theo nhu cầu của bạn và có thể tái sử dụng nhiều lần
SDK – Software Development Kit: là một bộ công cụ giúp bạn có thể pháttriển các ứng dụng của mình một cách dễ dàng hơn Trong đó còn có cả mộtcông cụ có khả năng biến code của bạn trở thành codebase để phát triển cho
cả 2 nền tảng Android và iOS
1.9.3 Những tính năng của Flutter
Dù chỉ mới phát triển gần đây, nhưng Flutter và Dart có rất nhiều những tính năngvượt trội hơn cả đàn anh như:
Khả năng hỗ trợ UI trên nhiều nền tảng khác nhau
Flutter đã là một react framework
Ngôn ngữ Dart cực kỳ đơn giản, dễ hiểu và dễ học
Hỗ trợ xây dựng giao diện đẹp lung linh và cực kỳ linh hoạt
Giúp bạn có thể phát triển ứng rất nhanh
Hiệu năng của ứng sẽ trở nên vượt trội
1.9.4 Ưu và nhược điểm của Flutter
Ưu điểm của Flutter
Khả năng giao tiếp gần như trực tiếp với hệ thống
Ngôn ngữ có cú pháp hiện đại và trình biên dịch linh động
Khả năng vượt trội về hiệu suất cũng như hiệu ứng cho ứng dụng rất cao
Bạn có thể tạo ra một phiên bản giả lập thiết bị di động ngay trên nền tảngweb giúp việc phát triển ứng dụng dễ dàng hơn
Trang 22 Các bộ công cụ hỗ trợ đo lường hiệu suất giúp các coder kiểm soát, đánh giá
và khắc phục các lỗi về hiệu suất của ứng dụng
Nhược điểm của Flutter
Flutter không phải là một ngôn ngữ “thần thánh” có thể đạt đến trình độ không thểnào chê Dù được Google tập trung nguồn lực phát triển, nhưng Flutter vẫn có một sốnhược điểm như sau:
Nếu muốn sử dụng Flutter, bạn sẽ phải học thêm ngôn ngữ lập trình Dart.Tuy là một một ngôn ngữ rất dễ học, nhưng Dart Không được uyển chuyểnnhư những ngôn ngữ khác như: Python hay JavaScript
Mặc dù Flutter là ”con cưng” và được Google tập trung phát triển nhưng,những phần mềm hay dịch vụ không mang lại quá nhiều lợi nhuận sẽ bịGoogle “bỏ giữa chợ” như: Google+, Hangout hay Angular,…
Sử dụng mô hình dữ liệu mới như DART Streaming hay Bloc Pattern, những
mô hình dữ liệu này sẽ làm bạn tốn thêm thời gian tìm hiểu
Bộ UI được phát triển riêng biệt với OS – hệ điều hành, điều này dẫn đếnviệc khi tạo ra ứng dụng trên những phiên bản khác nhau nhưng chúng sẽtương tự như nhau
Có thể nói rằng bộ Render UI được phát triển lại hoàn toàn và không liênquan đến UI sẵn có của Framework native, từ đó dẫn đến việc sử dụng cựcnhiều bộ nhớ!
Trang 23CHƯƠNG 2 TÌM HIỂU VÀ PHÂN TÍCH THUẬT TOÁN 2.1 Công nghệ nhận diện và xử lí hình ảnh
2.1.1 Công nghệ nhận diện hình ảnh là gì?
Công nghệ nhận dạng và xử lý hình ảnh là một trong những ứng dụng rộng rãi trongnhiều ngành công nghiệp hiện nay Rất nhiều các công ty lớn, những công ty công nghệđã tìm cách để ứng dụng công nghệ hình ảnh trong việc sản xuất nhiều thiết bị ngàynay
Hiện nay có rất nhiều định nghĩa về công nghệ nhận dạng hình ảnh Nhận dạng hìnhảnh hay được biết đến với tên gọi khác là tầm nhìn máy tính Đây là một trong những
kỹ thuật dùng để tìm kiếm các cách tự động hóa tất cả công việc mà một hệ thống thịgiác của con người có thể làm
Có rất nhiều ứng dụng trong cuộc sống hiện nay, chẳng hạn như: TensorFlow củaGoogle, DeepFace của Facebook, dự án Oxford của Microsoft Đây đều là nhữngchương trình sử dụng hệ thống nhận dạng hình ảnh học sâu như một phương thức làmviệc và đạt được những hiệu quả bất ngờ
Ngoài ra, các giao diện chương trình ứng dụng – các API được lưu trữ hiện naynhư: Google Cloud Vision, Clarifai, Imagga… Những dữ liệu này cho phép các doanhnghiệp có thể sử dụng và là giải pháp giúp tiết kiệm một số tiền lớn cho các nhóm pháttriển
Ưu điểm lớn nhất của các dịch vụ mã nguồn mở nhận diện hình ảnh hiện nay là vô
kể Ngoài việc tiến hành tính toán giúp nhận dạng hình ảnh trên đám mây, giúp cho hoạtđộng kinh doanh trở nên hiệu quả hơn và rẻ hơn rất nhiều.Các API còn có thể được tíchhợp vào nội bộ công ty mà không gặp những trục trặc về bản quyền hay sự cố Thậmchí, các nhà phát triển API mở này có thể sử dụng để phát triển một doanh nghiệp mớitrong lĩnh vực nhận dạng hình ảnh
2.1.2 Mục đích chính của việc sử dụng công nghệ hình ảnh
Hiện nay, công nghệ nhận dạng hình ảnh có được những tiềm năng rất lớn và đượcnhiều ngành công nghiệp sử dụng rộng rãi Những công ty hàng đầu thế giới hiện naynhư: Tesla, Google, Uber, Adobe Systems vv cũng sử dụng công nghệ nhận dạng hìnhảnh
Theo các nghiên cứu của chúng tôi, ngành công nghiệp nhận diện hình ảnh đượcứng dụng và tồn tại trên khắp thế giới Cụ thể theo dự tính của các nhà nghiên cứu,
Trang 24ngành công nghệ nhận dạng hình ảnh sẽ đạt 38,92 tỷ USD vào năm 2021 Đây thực sự
là một con số khổng lồ
Ngày nay càng có nhiều các ứng dụng imagetech tận dụng nhận dạng hình ảnh để
sử dụng cho nhiều mục đích khác nhau và trong cả kinh doanh Chính những ưu điểm
của công nghệ này đã giúp ngành này có được một vị thế không hề nhỏ trong xã hội.
Hình 2 1 Những tác dụng của việc sử dụng nhận dạng hình ảnh
Các công cụ mã nguồn mở giúp việc lập trình dễ dàng hơn, giúp việc tính toán chiphí phải chăng hơn
Các khung công tác và thư viện nguồn mở hiện nay giúp nhiều công ty có thể sửdụng, và hưởng lợi từ công nghệ nhận diện hình ảnh theo cấp số nhân.Ví dụ, các cơ sở
dữ liệu mở lớn như Pascal VOC và ImageNet đã cung cấp quyền truy cập vào hàng triệuhình ảnh được gắn thẻ Điều này đã giúp ích rất lớn cho các công ty công nghệ hình ảnhphát triển và cải tiến các ứng dụng cũng như các thuật toán học máy – Machine learningcủa riêng mình
Đây cũng là một thư viện đa nền tảng nguồn mở – OpenCV, giúp ích cho các nhàphát triển chuyên nghiệp nhận dạng hình ảnh thời gian thực
Công nghệ nhận dạng hình ảnh là tài nguyên có thẩm quyền lớn nhất và điểm giảiquyết đầu tiên dành cho các chuyên gia nhận dạng hình ảnh
Công nghệ này như một bộ thư viện tuyệt vời khác cho tầm nhìn máy tính bao gồmOpen, VXL và nhiều loại khác
Công nghệ nhận diện hình ảnh được sử dụng theo nhiều cách khác nhau, với nhữngứng dụng không giới hạn Việc Phân tích hình ảnh đã được đưa đến một đẳng cấp mớinhờ vào các giải pháp nguồn mở và các công cụ học sâu – deep learning
Trang 252.1.3 Các kỹ thuật xử lý hình ảnh kỹ thuật số phổ biến hiện nay
Hiện nay, công nghệ nhận dạng được đưa vào rất nhiều các ngành nghề khác nhau.Các hình ảnh phát triển trong các phần mềm di động, web và phần mềm phục vụ cho vô
số lý do Bao gồm: nhận dạng đối tượng, nhận dạng mẫu, định vị các bản sao (chính xáchoặc một phần), tìm kiếm hình ảnh theo phân đoạn, xử lý hình ảnh (Retouch,…), cảithiện ứng dụng di động UX…
Đặc biệt nhất chính là kỹ thuật xử lý hình ảnh Công việc này có rất nhiều giaiđoạn: nhập ảnh, phân tích, thao tác và tạo ảnh Trên thực tế, có hai phương pháp xử lýhình ảnh phổ biến nhất là: kỹ thuật số – Digital và analog
Trong kỹ thuật xử lý hình ảnh, thuật toán máy tính đóng vai trò vô cùng quan trọng.Các kỹ thuật chính để xử lý hình ảnh kỹ thuật số thông dụng nhất hiện nay gồm có:Chỉnh sửa hình ảnh: kỹ thuật này thường sử dụng một số công cụ phần mềm đồ họanhư: Photoshop, Lightroom, Gimp,…
Phục hồi hình ảnh: kỹ thuật này dùng có nhiệm vụ để tách một hình ảnh banđầu sạch ra khỏi hình ảnh tham nhũng được thực hiện để lấy lại các thông tin
bị mất
Phân tích thành phần độc lập: kỹ thuật này dùng để phân tách tín hiệu đabiến tính toán thành các thành phần phụ cộng
Nhiễu xạ không đẳng hướng: hay còn được gọi là khuếch tán Perona-Malik
Kỹ thuật này có tác dụng giảm nhiễu hình ảnh mà không loại bỏ các phầnquan trọng của hình ảnh
Lọc tuyến tính Đây là một kỹ thuật xử lý hình ảnh kỹ thuật số dùng để chỉcác tín hiệu đầu vào biến đổi theo thời gian Đồng thời tạo ra các tín hiệu đầu
ra phụ thuộc vào ràng buộc của tuyến tính
Mạng nơron: đây là các mô hình tính toán dùng để giải quyết các nhiệm vụkhác nhau
Pixelation: kỹ thuật này dùng để chuyển hình ảnh đã in thành những hìnhảnh được số hóa (chẳng hạn như GIF)
2.2 Tổng quan về Yolov5
Trong vài năm trở lại đây, Object detection là một trong những đề tài rất hot củadeep learning bởi khả năng ứng dụng cao, dữ liệu dễ chuẩn bị và kết quả ứng dụng thìcực kì nhiều Các thuật toán mới của Object detection như YOLO, SSD có tốc độ khá