Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 101 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
101
Dung lượng
3,14 MB
Nội dung
BỘ CÔNG THƢƠNG TRƢỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH PHẠM HỒNG THÁI ỨNG DỤNG XỬ LÝ ẢNH TRONG NHẬN DIỆN PHIẾU KIỂM NGHIỆM MẪU Chuyên ngành: KỸ THUẬT ĐIỆN TỬ Mã chuyên ngành: 8520203 LUẬN VĂN THẠC SĨ THÀNH PHỐ HỒ CHÍ MINH, NĂM 2021 Cơng trình đƣợc hồn thành Trƣờng Đại học Cơng nghiệp TP Hồ Chí Minh Ngƣời hƣớng dẫn khoa học: TS Phạm Trần Bích Thuận Luận v n thạc s đƣợc ảo vệ Hội đồng ch m ảo vệ Luận v n thạc s Trƣờng Đại học Công nghiệp thành phố Hồ Chí Minh ngày 29 tháng 01 n m 2021 Thành phần Hội đồng đánh giá luận v n thạc s gồm: - Chủ tịch Hội đồng - Phản iện - Phản iện - Ủy viên - Thƣ ký (Ghi rõ họ, tên, học hàm, học vị Hội đồng chấm bảo vệ luận văn thạc sĩ) CHỦ TỊCH HỘI ĐỒNG TRƢỞNG KHOA CÔNG NGHỆ ĐIỆN TỬ BỘ CÔNG THƢƠNG TRƢỜNG ĐẠI HỌC CƠNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINH CỘNG HÕA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên:PHẠM HOÀNG THÁI MSHV:18104941 Ngày, tháng, n m sinh:15/04/1982 Nơi sinh:TP.HCM Chuyên ngành:Kỹ thuật Điện tử Mã chuyên ngành: 8520203 I TÊN ĐỀ TÀI: Ứng dụng xử lý ảnh nhận diện phiếu kiểm nghiệm mẫu NHIỆM VỤ VÀ NỘI DUNG: Mục tiêu đề tài tìm kiếm phƣơng pháp hỗ trợ cho việc phân loại mẫu cần kiểm nghiệm qua tiêu mẫu từ phiếu kiểm nghiệm mẫu cách nhanh xác nh t; Xây dựng ứng dụng xử lý nhận diện ảnh từ phiếu kiểm nghiệm, từ làm phiếu điện tử kèm với mẫu đến để phòng an tƣơng ứng II NGÀY GIAO NHIỆM VỤ: Quyết định giao đề tài: Số 841/QĐ-ĐHCN ngày 10 / 07 /2020 III NGÀY HOÀN THÀNH NHIỆM VỤ: 29/01/2021 IV NGƢỜI HƢỚNG DẪN KHOA HỌC: (Ghi rõ học hàm, học vị, họ, tên) Hƣớng dẫn khoa học: TS PHẠM TRẦN BÍCH THUẬN Tp Hồ Chí Minh, ngày … tháng … năm 2021 NGƢỜI HƢỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO (Họ tên chữ ký) (Họ tên chữ ký) TRƢỞNG KHOA CÔNG NGHỆ ĐIỆN TỬ (Họ tên chữ ký) LỜI CẢM ƠN Lời đầu tiên, xin gửi lời cảm ơn đến Ban Giám hiệu trƣờng Đại học Công nghiệp Thành phố Hồ Chí Minh tạo mơi trƣờng học tập tốt nhƣ điều kiện thuận lợi nh t để thực đề tài Trong suốt trình học tập hồn thành đề tài, tơi nhận đƣợc nhiều giúp đỡ, đóng góp ý kiến bảo nhiệt tình Thầy, Cơ, gia đình ạn è Với lịng kính trọng iết ơn sâu sắc, tơi xin gửi lời cảm ơn chân thành đến TS Phạm Trần Bích Thuận, giảng viên Khoa Cơng nghệ Điện tử trƣờng Đại học Cơng nghiệp Thành phố Hồ Chí Minh, ngƣời truyền cảm hứng cho thầy PGS.TS Nguyễn Tấn Luỹ - Phó trƣởng khoa Cơng nghệ Điện tử Thầy tận tình, tận tâm trực tiếp hƣớng dẫn, truyền cảm hứng nhƣ bảo, động viên tơi suốt q trình thực luận v n Tôi xin chân thành cảm ơn Thầy, Cô Trƣờng Đại học Công nghiệp Thành phố Hồ Chí Minh nói chung Thầy, Cơ Khoa Cơng nghệ Điện tử nói riêng tận tình dạy dỗ, truyền đạt kiến thức sở nhƣ chuyên ngành, để có đƣợc tảng kiến thức hồn thành đề tài Tơi xin chân thành cảm ơn gia đình ạn è, ln tạo điều kiện, quan tâm, giúp đỡ, động viên suốt q trình học tập hồn thành luận v n thạc s Luận v n hoàn thành cách tốt nh t mà dành hết t t tâm huyết, nhƣng chắn có thiếu sót khơng thể tránh khỏi Tơi r t mong nhận đƣợc thông cảm ý kiến đóng góp chân thành từ phía Q Thầy Cơ Tơi xin chân thành cảm ơn! Tp Hồ Chí Minh, ngày … tháng … năm 2021 Học viên thực Phạm Hồng Thái i TĨM TẮT LUẬN VĂN THẠC SĨ Ngày nay, nhờ vào phát triển ứng dụng mạnh mẽ hệ thống máy tính giải thuật l nh vực xử lý ảnh thị giác máy tính mà ngày đƣợc nghiên cứu ứng dụng nhiều l nh vực giúp cho sống ngày thuận tiện Từ thực tiễn việc xây dựng chƣơng trình hoạt động cho hệ thống phân loại thiết yếu, đặc iệt hệ thống phân loại sản phẩm theo hình dạng Nhận dạng đối tƣợng đƣợc xem ài toán thu hút quan tâm từ nhà nghiên cứu phát triển L nh vực thị giác máy tính mang lại nhiều ứng dụng hữu ích từ nhiều l nh vực nhƣ nhận diện ảnh, theo dõi đối tƣợng, tìm kiếm, Có r t nhiều cách tiếp cận để giải l nh vực thị giác máy tính, với loại đối tƣợng cụ thể có có phƣơng pháp cụ thể để thực Bố cục ài luận đƣợc trình ày nhƣ sau : trƣớc hết tác giả vào nghiên cứu mạng Neural mạng Convolution (tích chập) nhƣ ý tƣởng mơ hình CNNs phân lớp ảnh (Image Classification), áp dụng việc xây dựng ứng dụng nhận diện phiếu kiếm nghiệm mẫu ii LỜI CAM ĐOAN Tôi xin cam đoan đề tài luận vặn riêng đƣợc hƣớng dẫn TS Phạm Trần Bích Thuận Nội dung nghiên cứu nhƣ kết đề tài trung thực chƣa cơng ố dƣới t kỳ hình thức trƣớc Những số liệu ảng iểu phục vụ cho việc phân tích, nhận xét, đánh giá đƣợc tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Học viên thực Phạm Hoàng Thái iii MỤC LỤC LỜI CẢM ƠN i TÓM TẮT LUẬN VĂN THẠC SĨ ii LỜI CAM ĐOAN iii DANH MỤC HÌNH ẢNH viii DANH MỤC BẢNG BIỂU x DANH MỤC THUẬT NGỮ xi MỞ ĐẦU .1 Đặt v n đề .1 Mục tiêu nghiên cứu Đối tƣợng phạm vi nghiên cứu 3.1 Đối tƣợng nghiên cứu 3.2 Phạm vi nghiên cứu Cách tiếp cận phƣơng pháp nghiên cứu .3 4.1 Cách tiếp cận 4.2 Phƣơng pháp nghiên cứu C u trúc áo cáo luận v n thạc s Ý ngh a thực tiễn đề tài .4 CHƢƠNG TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU .5 1.1 Tổng quan 1.2 Các nghiên cứu trƣớc .5 1.3 Nội dung nghiên cứu .9 CHƢƠNG CƠ SỞ LÝ THUYẾT .12 2.1 Tổng quan xử lý ảnh .12 2.1.1 Thu nhận hình ảnh (Image Acquisition) 13 2.1.2 Phân đoạn (Segmentation) hay phân vùng ảnh 14 2.1.3 Nhận dạng đối tƣợng (Object recognition) 14 2.1.4 Biểu diễn mô tả ảnh (Representation & description) 15 2.2 Trích xu t đặc trƣng ảnh .15 2.2.1 Đặc trƣng màu sắc 16 iv 2.2.2 Độ đo tƣơng đồng màu sắc 17 2.2.3 Đặc trƣng kết c u 17 2.2.4 Đặc trƣng hình dạng 18 2.2.4.1 Đặc trƣng hình dạng 18 2.2.4.2 Độ đo tƣơng đồng cho hình dạng 19 2.2.5 Đặc trƣng cục b t biến 19 2.2.5.1 Đặc trƣng cục b t biến 19 2.2.5.2 Độ đo tƣơng đồng cho đặc trƣng cục b t biến 20 2.2.6 Lựa chọn đặc trƣng 20 2.3 Mạng thần kinh nhân tạo .22 2.3.1 Giới thiệu mạng Neural nhân tạo 23 2.3.2 C u trúc mạng neural nhân tạo 23 2.3.3 Một số kiểu mạng Neural 25 2.3.3.1 Tự kết hợp (autoassociative) 25 2.3.3.2 Kết hợp khác kiểu (heteroassociative) 26 2.3.3.3 Kiến trúc truyền thẳng (feedforward architechture) 26 2.3.3.4 Kiến trúc phản hồi (Feedback architecture) 27 2.3.4 Mạng Neural lan truyền ngƣợc MLP 27 2.3.4.1 Kiến trúc mạng MLP 27 2.3.4.2 Hu n luyện mạng MLP 29 2.3.4.3 Học có giám sát mạng nơron 30 2.3.5 Mạng neural tích chập (CNN) 31 2.3.5.1 Mơ hình mạng neural tích chập 34 2.3.5.2 Xây dựng mạng neural tích chập 35 CHƢƠNG PHÂN LOẠI PHIẾU KIỂM NGHIỆM MẪU DÙNG MẠNG NƠRON CNN 47 3.1 Xác định đặc trƣng ảnh phiếu kiểm nghiệm .47 3.1.1Thu thập ảnh phiếu kiểm nghiệm 48 3.1.2 Tiền xử lý ảnh 49 3.1.3 Trích xu t đặc trƣng 49 3.1.4 Kết thực nghiệm 49 3.2 Phân loại ảnh dùng mạng nơron CNN 50 v 3.2.1 C u trúc mạng nơron CNN 50 3.2.1.1 Sơ đồ c u trúc mạng nơron đề xu t 50 3.2.1.2 Phân tích sơ đồ c u trúc mạng nơron đề xu t 51 3.2.2 Tập liệu hu n luyện 52 3.2.2.1 Mẫu phiếu hu n luyện 52 3.2.2.2 Mẫu phiếu Validation 53 3.2.2.3 Mẫu phiếu Test 54 3.2.3 Thuật toán hu n luyện mạng 55 3.2.4 Kết phân loại ảnh phiếu kiểm nghiệm 57 3.2.4.1 Kết thực nghiệm trình hu n luyện 57 3.2.4.2 Kết phân loại phiếu kiểm nghiệm 58 3.3 Kết luận .59 CHƢƠNG NHẬN DIỆN PHIẾU KIỂM NGHIỆM MẪU 60 4.1 Kiến trúc hệ thống .60 4.1.1 Kiến trúc hệ thống tổng quát 60 4.1.2 Kiến trúc hệ thống nhận dạng ảnh từ phiếu kiểm nghiệm 60 4.2 Lƣu đồ giải thuật 62 4.3 Kết nhận điện phiếu kiểm nghiệm mẫu thực tế 64 4.3.1 Xử lý ảnh đầu vào 64 4.3.2 Kết nhận diện phiếu kiểm nghiệm mẫu 65 4.3.2.1 Kết lựa chọn mẫu lựa loại tiêu cần kiểm nghiệm theo phiếu yêu cầu kiểm nghiệm từ phần mềm nhận mẫu 65 4.3.2.2 Kết phần mềm kiểm thử máy tính 67 4.3.2.3 Kết phần mềm kiểm thử điện thoại 69 4.4 Kết luận .70 KẾT LUẬN VÀ KIẾN NGHỊ 71 1.Kết đạt đƣợc 71 1.1 Về mặt khoa học 71 1.2 Về mặt ứng dụng 71 1.3 Về mặt ngƣời 71 2.Tồn 72 3.Hƣớng phát triển 72 vi TÀI LIỆU THAM KHẢO 73 PHỤ LỤC 78 TỔNG QUAN VỀ NGÔN NGỮ PYTHON 78 1.1 Giới thiệu 78 1.2 Đặc trƣng 78 1.3 Ứng dụng Python 79 TỔNG QUAN VỀ GOOGLE COLAB 80 2.1 Giới thiệu 80 2.2 Tổng quan thƣ viện sử dụng Python 81 2.2.1 OpenCV 81 2.2.2 NumPy 82 2.2.3 Keras 83 2.2.4 TensorFlow 83 2.2.5 Tkinter 84 2.3 Code hu n luyện mô hình CNN 84 LÝ LỊCH TRÍCH NGANG CỦA HỌC VIÊN 87 vii TÀI LIỆU THAM KHẢO [1] Bengio et al "Representation Learning: A Review and New erspectives" IEEE Transactions on Pattern Analysis and Machine Intelligence 35 (8): 1798 – 1828 ArXiv:1206.5538 Doi:10.1109/tpami.2013.50 PMID 23787338 S2CID 393 948, 2013 [2] Schmidhuber "Deep Learning in Neural Networks: An Overview," Neural Networks Vol 61, pp 85-117, doi:10.1016/j.neunet.2014.09.003 PMID 25462637 S2CID 11715509, 2015 [3] Bengio et al "Deep Learning,” Nature Vol 521, no 7553, pp 436–444 doi:10.1038/nature14539 PMID 26017442 S2CID 3074096, 2015 [4] Ciresan et al "Multi-column deep neural networks for image classification," present at The 2012 IEEE Conference on Computer Vision and Pattern Recognition, pp 3642–3649 doi:10.1109/cvpr.2012.6248110 ISBN 978-14673-1228-8 S2CID 2161592, 2012 [5] Krizhevsky et al "ImageNet Classification with Deep Convolutional Neural Networks," present at The NIPS 2012: Neural Information Processing Systems, Lake Tahoe, Nevada, 2012 [6] Darrell Etherington "Google's AlphaGo AI wins three-match series against the world's best Go player." Internet: https://techcrunch.com/2017/05/23/googlesalphago-ai-beats-the-worlds-best-human goplayer/#:~:text=Google's%20AlphaGo%20AI%20Go%20player,Jie%20on%20T hursday%20and%20Saturday, 20/11/2020 [7] Marblestone et al "Toward an Integration of Deep Learning and Neuroscience," Frontiers in Computational Neuroscience Vol 10, pp 94 doi:10.3389/fncom.2016.00094 PMC 5021692 PMID 27683554 S2CID 1994 856, 2016 [8] Olshausen, B A "Emergence of simple-cell receptive field properties by learning a sparse code for natural images," Nature Vol 381, no 6583, pp 607– 609 Bibcode:1996Natur.381 607O doi:10.1038/381607a0 PMID 8637596 S2CI D 4358477, 2016 [9] Bengio et al "Towards Biologically Plausible Deep Learning," arXiv:1502.04156, 2015 73 [10].Magestore."Tổng quan AI." Internet: https://insights.magestore.com/posts/tong-quan-ai-artificial-intellignence, 20/11/2020 [11] Jun Sang et al "An Improved YOLOv2 for Vehicle Detection," Sensors No 18, pp 4272, 2018 Doi 10.3390 [12] H Oliveira and P L Correia "Automatic road crack segmentation using entropy and image dynamic thresholding," present at The 17th European Signal Processing Conference, 2009 [13] D Bertero and P Fung "A first look into a Convolutional Neural Network for speech detection," present at The 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), New Orleans, LA, USA, 2017 [14] Schmidhuber "Deep Learning in Neural Networks: An Overview," Neural Networks Vol 61, pp 85 -117 ArXiv:1404.7828 doi:10.1016/j.neunet.2014.09.003 PMID 25462637 S2CID 117 15509, 2015 [15] Flex A Gers et al "Learning Precise Timing with LSTM Recurrent Networks," Journal of Machine Learning ResearchGate, pp.115-143 Retrieved 13/06/2017 [16] Graves et al "Biologically Plausible Speech Recognition with LSTM Neural Nets," present at The 1st Intl Workshop on Biologically Inspired Approaches to Advanced Information Technology, Bio-ADIT 2004, Lausanne, Switzerland, pp 175–184, 2003 [17] John S Garofolo et al “TIMIT Acoustic-Phonetic Continuous Speech Corpus Linguistic Data Consortium,” Philadelphia: Linguistic Data Consortium, 1993 [18] Bệnh nhiệt đới “Cơng nghệ thơng tin chẩn đốn hình ảnh y học.” Internet: http://benhnhietdoi.vn/tin-tuc/chi-tiet/cong-nghe-thong-tin-trong-chandoan-hinh-anh-y-hoc/814, 10/12/2020 [19] Steger et al.” Machine Vision Algorithms and Applications,” Weinheim: Wiley-VCH p ISBN 978-3-527-41365-2 Retrieved 2018-01-30 [20] E Roy Davies “Machine Vision: Theory, Algorithms, Practicalities Morgan Kaufmann.“ ISBN 978-0-12-206093-9, 2005 [21] Richard Szeliski “Vision: Algorithms and Applications Springer Science & Business Media,” pp 10–16 ISBN 978-1-84882-935-0, 30/09/2010 74 [22] Long Van “Thị giác máy tính.” Interner: https://longvan.net/thi-giac-maytinh-la-gi-ung-dung-thi-giac-may-tinh.html, 20/12/2020 [23].Wikipedia."Xử lý ảnh.” Internet: https://vi.wikipedia.org/wiki/X%E1%BB%AD_l%C3%BD_%E1%BA%A3nh, 31/11/2020 [24] Nguyễn T n Lũy Bài giảng xử lý ảnh NXB Trƣờng ĐHCN TP.HCM, 2016 [25] Linda G Shapiro and George C Stockman Computer Vision PrenticeHall, pp 279–325, New Jersey, ISBN 0-13-030796-3, 2001 [26] Barghout et al "Perceptual information processing system," Paravue Inc U.S Patent Application 10/618,543, filed July 11, 2003 [27] Zachow et al "3D reconstruction of individual anatomy from medical image data: Segmentation and geometry processing," ZIB report 07-41, 2007 [28] Đỗ Minh Hải "Mạng nơ-ron nhân tạo." Internet: https://dominhhai.github.io/vi/2018/04/nn-intro/,10/12/2020 [29] N.T.Tuan "Bài - Convollutional neural network." Internet: https://nttuan8.com/bai-6-convolutional-neural-network/,01/12/2020 [30] Y LeCun et al "Backpropagation Applied to Handwritten Zip Code Recognition," Neural computation Vol 1, no 4, pp 541-551, 1989 [31] A Krizhevsky et al "ImageNet Classification with Deep Convolutional Neural Networks," Communications of the ACM Vol 60, 2017 [32] V Shiv Naga Prasad A.G Faheema, Subrata Rakshi “Feature Selection in Example-Based Image Retrieval Systems,” Indian Conference on Vision Graphics and Image Processing, 2002 [33] C V Jawahar, P J Narayanan, and S Rakshit “A flexi le scheme for representation, matching, and retrieval of images,” ICVGIP 2000, pages 271–277 Allied Publishers Ltd., 2000 [34] Michele Saad “Low-Level Color and Texture Feature Extraction for ContentBased Image Retrieval,” EE 381K: Multi-Dimensional Digital Signal Processing, 2008 [35] P.S Hirematch, Jagadeesh Puijari (2007) “Content base image retrieval base on color, texture and shape feature using Image and its complement,” IJCSS, International journal of computer science and security.Vol 1, issue 4, Dec 2007,pp 25-35, 2007 75 [36] Yossi Rubner et al “Empirical: Evaluation of Dissimilarity Measures for Color and Texture,” Computer Vision and Image Understanding, vol 84, issue Elsivier Science Ins [37] Thomas Deselaers1 et al “Features for Image Retrieval: An Experimental Comparison,” Information Retrieval vol 11, issue 2, Kluwer Academic Publishers Hingham, MA, USA [38] Tee Cheng Siew “Feature selection for content-based image retrieval using statistical discriminant analysis,” PhD thesis Faculty of Computer Science and Information System Universiti Teknologi Malaysia, 2008 [39] Lowe David “Distinctive image features from scale-invariant keypoints,” International Journal of Computer Vision, 60(2): 91–110, 2004 [40] Yushi Jing “PageRank for images products search,” Reafered Track: Rich media, April 21-25, Beijing, China, 2008 [41] Kamarul Hawari Ghazali “Feature Extraction technique using SIFT keypoints descriptors,” The International Conference on Electrical and Engineering and Informatics Institut technology Bandung, Indonesia, june 17-19, 2007 [42] Mohamed Aly “Face Recognition using SIFT Features,” AlyCNS186 Term Project Winter, 2006 [43] W Jiang et al “Similarity-Based Online Feature Selection In Content-Based Image Retrieval,” IEEE Trans Image Processing, 15(3), pp.702-712, 2006 [44] W Jiang et al “Online feature Selection based on Generalized Feature Contrast Model,” IEEE International Conference on Multimedia and Expo(ICME) pp 1995-1998, 2004 [45] Nguyễn Trƣơng Long “Lý thuyết mạng nơ-ron nhân tạo artificial network ann.” Internet: https://nguyentruonglong.net/ly-thuyet-ve-mang-no-ron-nhan-taoartificial-neural-network-ann.html, 10/03/2021 [46] Khoa Điện-Điện tử “Lý thuyết mạng nơ-ron.” Internet: https://www.google.com/search= hàm truyền nơ ron thông dụng, 10/03/2021 [47] Wikipedia “Mạng Hopfiled.” Internet: https://www.google.com/search= Mạng Hopfield tự kết hợp, 15/03/2021 [48] Lê Thị Thu Hằng “Luận v n.” Internet: http://lib.uet.vnu.edu.vn/bitstream/123456789/918/1/K20_KTPM_Le_Thi Thu_Hang_luanvan.pdf, 10/03/2021 76 [49] Vũ Hữu Tiệp “Bài 37: Tích chập hai chiều.” Internet: https://machinelearningcoban.com/2018/10/03/conv2d, 15/03/2021 [50] Nguyễn Thế Tồn “Thuật tốn CNN – Convolutional Neural Networks.” Internet: https://viblo.asia/p/su-dung-cnn-trong-bai-toan-nhan-dang-mat-nguoiphan-1-eW65GoOP5DO, 15/03/2021 77 PHỤ LỤC TỔNG QUAN VỀ NGON NGỮ PYTHON 1.1 Giới thiệu Python ngơn ngữ lập trình hƣớng đối tƣợng r t thơng dụng Có c u trúc rõ ràng, r t thuận tiện cho ngƣời học lập trình làm cho việc thử nghiệm tính n ng ngôn ngữ trở nên dễ dàng [7] Đƣợc tạo ởi Guido van Rossum Amsterdam vào n m 1990 Python hoàn toàn tạo kiểu động dùng chế c p phát ộ nhớ tự động Python đƣợc phát triển dự án mã mở, tổ chức phi lợi nhuận Python Software Foundation quản lý Python ngơn ngữ lập trình mạnh dễ học Python có tính hiệu r t cao với c u trúc liệu đơn giản nhƣng lại r t hữu dụng với ngơn ngữ lập trình hƣớng đối tƣợng 1.2 Đặc trƣng Dễ học, dễ đọc: Python đƣợc thiết kế để trở thành ngôn ngữ dễ học, mã nguồn dễ đọc, ố cục rõ ràng, dễ hiểu Từ khóa: Python t ng cƣờng sử dụng từ khóa tiếng Anh, hạn chế kí hiệu c u trúc, cú pháp so với ngôn ngữ khác Python ngôn ngữ phân iệt kiểu chữ hoa, chữ thƣờng Khối lệnh: Trong ngôn ngữ khác, khối lệnh thƣờng đƣợc đánh d u ằng cặp kí hiệu từ khóa Ví dụ, C/C++, cặp ngoặc nhọn {} đƣợc dùng để ao ọc khối lệnh Ngƣợc lại, Python có cách r t đặc iệt để tạo khối lệnh, thụt câu lệnh khối vào sâu (về ên phải) so với câu lệnh khối lệnh cha chứa Khả n ng mở rộng: Python đƣợc mở rộng Trình thơng dịch: Python ngơn ngữ lập trình dạng thơng dịch, nên Python tiết kiệm đƣợc thời gian phát triển ứng dụng khơng cần phải thực iên dịch liên kết Trình thơng dịch đƣợc sử dụng để chạy file script, 78 đƣợc sử dụng theo cách tƣơng tác Ở chế độ tƣơng tác, trình thơng dịch Python tƣơng tự shell hệ điều hành họ Unix Lệnh c u trúc điều khiển: Mỗi câu lệnh Python nằm dòng mã nguồn Module: Python cho phép chia chƣơng trình thành module để sử dụng lại chƣơng trình khác Python cung c p sẵn tập hợp modules chuẩn mà lập trình viên sử dụng lại chƣơng trình họ Các module cung c p nhiều chức n ng hữu ích, nhƣ hàm truy xu t tập tin, lời gọi hệ thống, trợ giúp lập trình mạng Đa n ng: Python ngơn ngữ lập trình đơn giản nhƣng r t hiệu So với Unix shell, Python hỗ trợ chƣơng trình lớn cung c p nhiều c u trúc Multiple paradigms (đa iến hóa): Python ngơn ngữ đa iến hóa (multiple paradigms) Có ngh a là, thay ép uộc ngƣời phải sử dụng nh t phƣơng pháp lập trình, Python lại cho phép sử dụng nhiều phƣơng pháp lập trình khác nhau: hƣớng đối tƣợng, có c u trúc, chức n ng, hƣớng đến khía cạnh Python kiểu động sử dụng ộ thu gom rác để quản lí ộ nhớ Một đặc điểm quan trọng Python giải pháp tên động, kết nối tên iến tên phƣơng thức lại với suốt thực thi chƣơng trình 1.3 Ứng dụng Python Python đƣợc ứng dụng nhiều l nh vực khác nhau: Xây dựng tiện ích nhỏ để tự động hóa cơng việc nhƣ: tự động tìm kiếm, phân loại tập tin theo tiêu chí riêng, tự động cập nhật tập tin v n ản theo yêu cầu 79 Xây dựng ứng dụng we : Python cung c p nhiều framework để ta lựa chọn để phát triển ứng dụng we tùy theo mơ hình ứng dụng nhƣ: Django, Pyramid, Flask, … Lập trình tính tốn khoa học, số liệu nhờ công cụ lớp thƣ viện đƣợc xây dựng sẵn nhƣ: SciPy, IPython, … Lập trình ứng dụng desktop (wxWidgets), lập trình hình tƣơng tác (Kivy), … Bên cạnh đó, Python cịn ngơn ngữ lập trình đƣợc lựa chọn để giảng dạy lập trình khóa học nhập mơn lập trình trƣờng Đại học lớn giới TỔNG QUAN VỀ GOOGLE COLAB 2.1 Giới thiệu Cola oratory hay gọi Google Cola , sản phẩm từ Google Research, cho phép chạy dịng code Python thơng qua trình duyệt, đặc iệt phù hợp với Data Analysis, Machine Learning giáo dục Cola không cần yêu cầu cài đặt hay c u hình máy tính, thứ chạy thơng qua trình duyệt, lập trình viên sử dụng tài nguyên máy tính từ CPU tốc độ cao có hỗ trợ CPUs GPUs Colab cung c p nhiều loại GPU, thƣờng Nvidia K80s, T4s, P4s and P100s, nhiên ngƣời dùng chọn loại GPU Cola , GPU Cola thay đổi theo thời gian Vì dịch vụ miễn phí, nên Cola có thứ tự ƣu tiên việc sử dụng tài nguyên hệ thống, nhƣ giới hạn thời gian sử dụng, thời gian sử dụng tối đa lên tới 12 80 Hình 2.1 Thơng số Google Cola hỗ trợ online 2.2 Tổng quan thƣ viện sử dụng Python 2.2.1 OpenCV OpenCV (OpenSource Computer Vision) thƣ viện mã nguồn mở, đƣợc phát hành theo gi y phép BSD nên hồn tồn miễn phí cho học thuật thƣơng mại OpenCV đƣợc thiết kế để tính tốn hiệu với tập trung nhiều vào ứng dụng thời gian thực Đƣợc viết ằng tối ƣu hóa C/C++, thƣ viện tận dụng lợi xử lý đa lõi OpenCV đƣợc sử dụng rộng rãi ứng dụng ao gồm: Nhận diện hình ảnh Kiểm tra giám sát tự động Ro ot xe tự lái Phân tích hình ảnh y tế Tìm kiếm phục hồi hình ảnh/video Phim - c u trúc 3D từ chuyển động Nghệ thuật đặt tƣơng tác 81 Một số module ản hỗ trợ xử lý ảnh đƣợc sử dụng ằng thƣ viện OpenCV: Core: Module chứa c u trúc, class ản mà OpenCV sử dụng việc lƣu trữ xử lý hình ảnh nhƣ Mat, Scale, Point, Vec… phƣơng thức ản sử dụng cho module khác Imgproc: Module xử lý hình ảnh OpenCV ao gồm ộ lọc (filter) linear non-linear phép iến đổi hình học (tranformation) nhƣ resize phép iến đổi affine, chuyển đổi hệ máy thuật toán liên quan đến histogram ( iểu đồ) hình ảnh Highgui: Module cho phép tƣơng tác với ngƣời dùng UI (User Interface) nhƣ hiển thị hình ảnh, video capturing Features2d: Module tìm đặc trƣng (feature) hình ảnh Trong module có impltơient thuật tốn rút trích đặc trƣng nhƣ PCA… Cali 3d: Hiệu chuẩn máy ảnh xây dựng lại 3D O jdetect: Module cho việc phát đối tƣợng nhƣ khuôn mặt, đôi mắt, cốc, ngƣời, xe hơi, … hình ảnh Các thuật tốn đƣợc sử dụng module Haarlike Features ml: Module chứa thuật toán Machine Learning phục vụ cho ài tồn phân lớp (Classfitication) ài tốn gom cụm (Clustering) Ví dụ nhƣ thuật tốn SVM (Support Vector Machine), ANN… Video: Module phân tích video gồm ƣớc lƣợng chuyển động, trừ nền, thuật toán theo dõi đối tƣợng (o ject tracking) 2.2.2 NumPy NumPy từ viết tắt "Numeric Python" "Numerical Python" Là mô-đun mở rộng mã nguồn mở cho Python, cung c p chức n ng iên dịch nhanh cho thao tác toán học số Hơn nữa, NumPy làm phong phú ngơn ngữ lập trình Python với c u trúc liệu mạnh mẽ để tính toán hiệu mảng 82 ma trận đa chiều Việc thực chí nhằm vào ma trận mảng khổng lồ Bên cạnh mơ-đun cung c p thƣ viện lớn chức n ng toán học c p cao để hoạt động ma trận mảng 2.2.3 Keras Keras thƣ viện đƣợc phát triển vào n m 2015 ởi Franỗois Chollet, l mt k s nghiờn cu Deep Learning Google Là mã nguồn mở cho mạng Neural đƣợc viết ởi ngôn ngữ Python Keras API ậc cao sử dụng chung với thƣ viện Deep Learning tiếng nhƣ Tensorflow (đƣợc phát triển ởi Google), CNTK (đƣợc phát triển ởi microsoft), Theano (ngƣời phát triển Yoshua Bengio) Keras có số ƣu điểm nhƣ: Dễ sử dụng, xây dựng model nhanh Có thể chạy CPU GPU Hỗ trợ xây dựng CNN, RNN kết hợp hai 2.2.4 TensorFlow Thƣ viện TensorFlow thƣ viện mã nguồn mở dùng cho tính tốn số học sử dụng đồ thị luồng liệu TensorFlow an đầu đƣợc phát triển ởi nhà nghiên cứu kỹ sƣ làm việc nhóm Google Brain tổ chức Nghiên cứu trí thơng minh máy Google với mục đích tiến hành học máy nghiên cứu mạng lƣới thần kinh sâu Hệ thống áp dụng nhiều l nh vực khác Ƣu điểm TensorFlow: Tích hợp sẵn r t nhiều thƣ viện Machine Learning Có khả n ng tƣơng thích mở rộng tốt Đƣợc Google phát triển cho Machine Learning phục vụ nghiên cứu lẫn xây dựng ứng dụng thực tế Phổ iến 83 2.2.5 Tkinter Tkinter gói Python có chứa module Tk hỗ trợ cho việc lập trình GUI (Graphic User Interface) Sử dụng xây dựng giao diện phần mềm 2.3 Code huấn luyện mơ hình CNN Code đƣợc xây dựng từ thƣ viện mã nguồn mở OpenCV: import tensorflow as tf import keras from keras.models import Sequential from keras.layers import Dense from keras.layers import BatchNormalization from keras.layers import Activation from keras.layers import Conv2D from keras.layers import MaxPool2D from keras.layers import Dropout from keras.layers import Flatten from keras.optimizers import Adam model = Sequential() model.add(Conv2D(64, (3, 3), (1, 1), input_shape=(504, 88, 3), activation="relu", p adding='same')) model.add(MaxPool2D((2, 2))) model.add(BatchNormalization()) model.add(Conv2D(128, (3, 3), (1, 1), activation="relu", padding='same')) model.add(MaxPool2D((2, 2))) model.add(BatchNormalization()) model.add(Conv2D(256, (3, 3), (1, 1), activation="relu", padding='same')) model.add(MaxPool2D((2, 2))) model.add(BatchNormalization()) model.add(Conv2D(512, (3, 3), (1, 1), activation="relu", padding='same')) model.add(MaxPool2D((2, 2))) model.add(BatchNormalization()) model.summary() model = Sequential() model.add(Conv2D(64, (3, 3), (1, 1), input_shape=(504, 88, 3), activation="relu", padding='same')) model.add(MaxPool2D((2, 2))) model.add(BatchNormalization()) model.add(Conv2D(128, (3, 3), (1, 1), activation="relu", padding='same')) model.add(MaxPool2D((2, 2))) 84 model.add(BatchNormalization()) model.add(Conv2D(256, (3, 3), (1, 1), activation="relu", padding='same')) model.add(MaxPool2D((2, 2))) model.add(BatchNormalization()) model.add(Conv2D(512, (3, 3), (1, 1), activation="relu", padding='same')) model.add(MaxPool2D((2, 2))) model.add(BatchNormalization()) model.summary() model.add(Flatten()) model.add(Dense(512, activation="relu")) model.add(Dropout(0.3)) model.add(Dense(256, activation="relu")) model.add(Dropout(0.3)) model.add(Dense(4, activation="softmax")) H = model.compile(optimizer=Adam(0.001), loss='categorical_crossentropy', metri cs=["accuracy"]) from keras.preprocessing.image import ImageDataGenerator train_generator = ImageDataGenerator(rescale=1/255) valid_generator = ImageDataGenerator(rescale=1/255) train = train_generator.flow_from_directory( '/content/drive/My Drive/Trắc Nghiệm/Data61234/train', target_size= (504, 88), batch_size = 32, class_mode = 'categorical' ) Found 800 images belonging to classes valid = valid_generator.flow_from_directory( '/content/drive/My Drive/Trắc Nghiệm/Data61234/valid', target_size= (504, 88), batch_size = 32, class_mode = 'categorical' ) Found 200 images belonging to classes history = model.fit(train, validation_data=valid, epochs=5) Epoch 1/5 85 25/25 [==============================] - 600s 24s/step - loss: 0.2084 accuracy: 0.9588 - val_loss: 6.4187 - val_accuracy: 0.2500 Epoch 2/5 25/25 [==============================] - 278s 11s/step - loss: 0.0856 accuracy: 0.9975 - val_loss: 10.3019 - val_accuracy: 0.5000 Epoch 3/5 25/25 [==============================] - 281s 11s/step - loss: 0.2783 accuracy: 0.9950 - val_loss: 0.0000e+00 - val_accuracy: 1.0000 Epoch 4/5 25/25 [==============================] - 278s 11s/step - loss: 7.5116e06 - accuracy: 1.0000 - val_loss: 8.8511e-06 - val_accuracy: 1.0000 Epoch 5/5 25/25 [==============================] - 278s 11s/step - loss: 0.0352 accuracy: 0.9987 - val_loss: 0.0000e+00 - val_accuracy: 1.0000 import matplotlib.pyplot as plt print(history.history.keys()) plt.plot(history.history['accuracy']) plt.plot(history.history['val_accuracy']) plt.title('model accuracy') plt.ylabel('accuracy') plt.xlabel('epoch') plt.legend(['train', 'test'], loc='upper left') plt.show() # summarize history for loss plt.plot(history.history['loss']) plt.plot(history.history['val_loss']) plt.title('model loss') plt.ylabel('loss') plt.xlabel('epoch') plt.legend(['train', 'test'], loc='upper left') plt.show() dict_keys(['loss', 'accuracy', 'val_loss', 'val_accuracy']) 86 LÝ LỊCH TRÍCH NGANG CỦA HỌC VIÊN I LÝ LỊCH SƠ LƢỢC: Họ tên: PHẠM HOÀNG THÁI Giới tính: Nam Ngày, tháng, n m sinh: 15/04/1982 Nơi sinh: TPHCM Email: hoangthai_154@yahoo.com Điện thoại:0909367233 II QUÁ TRÌNH ĐÀO TẠO: Từ n m 2000 đến 2005: học cao đẳng trƣờng đại học Cơng nghệ Sài Gịn (tiền thân trƣờng cao đẳng Kỹ nghệ Sài Gòn) Từ n m 2008 đến 2010: học đại học trƣờng đại học Công nghệ Sài Gòn Từ n m 2018 đến 2020: học thạc s đại học Công nghiệp TPHCM III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN: Thời gian Từ tháng 02/2005 đến Nơi cơng tác Trung tâm Dịch vụ Phân tích Thí nghiệm TPHCM Cơng việc đảm nhiệm Kỹ thuật viên Tp HCM, ngày tháng …… Năm 2021 Ngƣời khai (Ký tên) 87 ... trƣng ảnh? ?? - Nhận diện phiếu kiểm nghiệm mẫu: Ứng dụng mạng neural học sâu (Deep Learning Neutral Network) để nhận dạng hình ảnh - Phân loại Phiếu kiểm nghiệm mẫu: Từ ảnh chụp phiếu kiểm nghiệm mẫu, ... Ứng dụng xử lý ảnh nhận diện phiếu kiểm nghiệm mẫu NHIỆM VỤ VÀ NỘI DUNG: Mục tiêu đề tài tìm kiếm phƣơng pháp hỗ trợ cho việc phân loại mẫu cần kiểm nghiệm qua tiêu mẫu từ phiếu kiểm nghiệm mẫu. .. Neutral Network) để nhận dạng hình ảnh - Phân loại Phiếu kiểm nghiệm mẫu: Từ ảnh chụp phiếu kiểm nghiệm mẫu, phân loại đƣợc yêu cầu xét nghiệm mẫu gồm: Loại mẫu tiêu yêu cầu kiểm nghiệm Đối tƣợng