You are on page 1of 30

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

KHOA ĐIỆN – ĐIỆN TỬ


BỘ MÔN ĐIỀU KHIỂN HỌC

TIỂU LUẬN XỬ LÝ ẢNH

ĐỀ TÀI: PHÂN TÍCH CÁC ỨNG DỤNG CHUNG CỦA XỬ LÝ


ẢNH TRONG CÔNG NGHIỆP VÀ MỘT PHƯƠNG PHÁP NHẬN
DẠNG ẢNH (IMAGE RECOGNITION) TRONG CÔNG
NGHIỆP

Sinh viên thực hiện: Phan Đức Minh Luân


Mã sinh viên : 5851031021
Lớp: Tự Động Hoá K58
Giáo viên hướng dẫn: Mai Vinh Dự

TP. HỒ CHÍ MINH, Tháng 7 năm 2021


Lời cảm ơn

LỜ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 thời gian
từ khi bắt đầu học tập ở giảng đường đại học đến nay, em đã nhận được rất nhiều sự
quan tâm, giúp đỡ của quý Thầy Cô, gia đình và bạn bè. Với lòng biết ơn sâu sắc nhất,
đã cùng với những tri thức và tâm huyết của mình để truyền đạt vốn kiến thức quý báu
cho em trong suốt quá trình học. Và đặc biệt, trong môn học Xử Lý Ảnh này thầy Mai
Vinh Dự đã tận tình giảng dạy, truyền đạt thêm cho em những kiến thức hay về môn
học này. Em xin chân thành cảm ơn thầy đã tận tâm hướng dẫn trong suốt quá trình học
tập. Bước đầu đi vào thực tế, kiến thức của chúng em còn hạn chế và còn nhiều bỡ ngỡ.
Do vậy, không tránh khỏi những thiếu sót là điều chắc chắn, em rất mong nhận được
những ý kiến đóng góp quý báu của quý thầy để kiến thức của em được hoàn thiện hơn.

Em xin gửi đến thầy lời chúc tốt đẹp nhất trong cuộc sống. Kính chúc quý thầy dồi
dào sức khỏe và thành công trong sự nghiệp cao quý.
Em xin trân trọng cảm ơn!

TP.Hồ Chí Minh, tháng 7 năm 2021


Sinh viên thực hiện
Phan Đức Minh Luân

Phan Đức Minh Luân – Tự Động Hoá K58 i


Mục lục

MỤC LỤC
LỜI CẢM ƠN ..........................................................................................................i
DANH MỤC HÌNH VẼ ........................................................................................iv
MỞ ĐẦU ................................................................................................................1
CHƯƠNG 1 PHÂN TÍCH ỨNG DỤNG CHUNG CỦA XỬ LÝ ẢNH TRONG
CÔNG NGHIỆP 2
1.1 Các ứng dụng chung của xử lý ảnh trong công nghiệp ...........................2
1.1.1 Nhận diện/kiểm tra ngoại dạng sản phẩm ..........................................2
1.1.2 Nhận diện/kiểm tra màu sắc ...............................................................2
1.1.3 Đo lường/kiểm tra kích thước không tiếp xúc ...................................3
1.1.4 Kiểm tra kí tự quang học (OCV) ........................................................4
1.1.5 Điều hướng Robot ..............................................................................5
1.1.6 Đọc mã vạch .......................................................................................5
1.1.7 Giám sát sản phẩm và thành phần lắp ráp ..........................................6
1.1.8 Theo dõi khiếm khuyết.......................................................................7
1.1.9 Kiểm tra 3D ........................................................................................8
1.1.10 Phân tích văn bản và viết tay............................................................9
1.2 Lợi ích ....................................................................................................10
CHƯƠNG 2 PHƯƠNG PHÁP NHẬN DẠNG MÃ QR-CODE TRONG CÔNG
NGHIỆP 11
2.1 Đặt vấn đề ..............................................................................................11
2.2 Giới thiệu về QR-CODE........................................................................11
2.2.1 QR-CODE: Mã vạch thế giới mới ...................................................11
2.2.2 Thuật toán QR-CODE ......................................................................12
2.2.3 Tạo bộ mã sửa lỗi .............................................................................15
2.2.4 Chọn mẫu mặt nạ phù hợp ...............................................................16
2.2.5 Thêm thông tin phiên bản ................................................................18
2.2.6 Thêm dữ liệu bist..............................................................................19
2.2.7 Sắp xếp theo cột từ dưới lên .............................................................20
2.2.8 Hoàn tất QR-CODE .........................................................................21

Phan Đức Minh Luân – Tự Động Hoá K58 ii


Mục lục

CHƯƠNG 3 ỨNG DỤNG CỦA PHƯƠNG PHÁP NHẬN DẠNG MÃ QR-


CODE 22
3.1 Code chương trình .................................................................................22
3.2 Kết quả thu được ....................................................................................23

Phan Đức Minh Luân – Tự Động Hoá K58 iii


Danh mục hình vẽ

DANH MỤC HÌNH VẼ

Hình 1.1 Sản phẩm được kiểm tra bị lỗi ....................................................2


Hình 1.2 Sản phẩm được kiểm tra không lỗi .............................................2
Hình 1.3 Phát hiện nhựa màu xanh còn sót trên khuôn .............................3
Hình 1.4 Phát hiện nhựa màu xanh không còn trên khuôn ........................3
Hình 1.5 Đo kích thước kềm bằng camera .................................................4
Hình 1.6 Kiểm tra chất lượng bề mặt sản phẩm bằng camera công nghiệp
...............................................................................................................................4
Hình 1.7 Điều hướng tay robot gắp tôm bằng camera ...............................5
Hình 1.7 Đọc mã vạch bằng phương pháp xử lý ảnh .................................6
Hình 1.8 Công đoạn giám sát sản phẩm sử dụng xử lý ảnh .......................7
Hình 1.9 Ứng dụng xử lý ảnh để theo dõi dây chuyền sản xuất ................8
Hình 1.10 Kiểm tra 3D sản phẩm sử dụng xử lý ảnh .................................9
Hình 1.11 Phân tích chữ viết ......................................................................9
Hình 2.1 Hình ảnh mã QR code ...............................................................12
Hình 2.2 Thuật toán QR-CODE ...............................................................12
Hình 2.3 Sắp xếp theo cột ........................................................................20

Phan Đức Minh Luân – Tự Động Hoá K58 iv


Mở đầu

MỞ ĐẦU
1. Sự cần thiết của đề tài
Ngày nay, khoa học công nghệ là một phần tất yếu trong cuộc sống con người.
Cùng với sự phát triển của xã hội và thời đại, chúng đã có ứng dụng và ảnh hưởng sâu
sắc đến nhiều lĩnh vực đời sống. Nó phục vụ con người từ việc giải trí, kinh doanh, liên
lạc và đặc biệt những vấn đề phức tạp trong khoa học kỹ thuật và các ứng dụng vào công
nghiệp. Càng ngày, thời gian gia tăng tốc độ phát triển khoa học kỹ thuật càng tăng cao.
Như vậy, ta dễ dàng nhìn thấy khả năng thu thập xử lý thông tin (hình ảnh, âm thanh,
lời nói, văn bản…) gần như vô hạn của máy tính điện tử, các thiết bị điều khiển, thì
chúng ta có một câu hỏi đặt ra là: Con người phải làm gì với một khối tri thức khổng lồ
và ngày càng tăng nhanh tới mức không thể tưởng tượng nổi đó được thu thập một cách
vô cùng dễ dàng? Để trả lời phần nào câu hỏi đó, bộ môn xử lý ảnh được ra đời nhằm
tối ưu các thông tin mà hình ảnh mang lại, giảm thiểu độ sai lệch thông tin qua hình ảnh.
Do đó xử lý ảnh ngày càng phát triển và tiến bộ vì hình ảnh là một trong các phương
thức giao tiếp thông tin nhanh, dễ dàng rõ rang nhất đặc biệt là trong công nghiệp . Cho
nên nhóm chúng em làm bài tiểu luận này nhằm tìm hiểu về môt trong các phương pháp
nhận dạng ảnh và từ đó xây dựng một ứng dụng nhằm phục vụ quá trình xử lý ảnh trong
công nghiệp.
2. Mục tiêu nghiên cứu
Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp và một phương pháp
nhận dạng ảnh. Xây dựng một ứng dụng dùng phương pháp nhận dạng ảnh trong công
nghiệp.
3. Kết cấu báo cáo đề tài
Mở đầu
CHƯƠNG I: PHÂN TÍCH ỨNG DỤNG CHUNG CỦA XỬ LÝ ẢNH TRONG CÔNG
NGHIỆP
CHƯƠNG II: PHƯƠNG PHÁP NHẬN DẠNG MÃ QR-CODE TRONG CÔNG
NGHIỆP
CHƯƠNG III: ỨNG DỤNG CỦA PHƯƠNG PHÁP NHẬN DẠNG MÃ QR-CODE

Phan Đức Minh Luân – Tự Động Hoá K58 1


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

CHƯƠNG 1 PHÂN TÍCH ỨNG DỤNG CHUNG CỦA XỬ LÝ ẢNH TRONG CÔNG
NGHIỆP
1.1 Các ứng dụng chung của xử lý ảnh trong công nghiệp
1.1.1 Nhận diện/kiểm tra ngoại dạng sản phẩm
Sản phẩm sau khi được lắp ráp hay gia công đều cần được kiểm ngoại dạng trước
khi chuyển sang công đoạn tiếp theo để đảm bảo không để lọt bất cứ sản phẩm lỗi nào
tới khách hàng. Thông thường công đoạn kiểm tra này do người thao tác (công nhân)
trực tiếp dùng mắt kiểm tra với 1 quy trình nhất định. Việc này có nhiều ưu điểm song
lại không đạt được độ chính xác cao nhất mà nhà sản xuất mong muốn. Do đó việc áp
dụng công nghệ xử lý ảnh để nhận diện/kiểm tra ngoại dạng sản phẩm là điều cần thiết.

Hình 1.1 Sản phẩm được kiểm tra bị lỗi

Hình 1.2 Sản phẩm được kiểm tra không lỗi


1.1.2 Nhận diện/kiểm tra màu sắc
Màu sắc được sử dụng nhiều trong xử lý ảnh như: Nhận diện sản phẩm, phân
loại sản phẩm, kiểm tra bề mặt .v.v. Việc sử dụng 1 cảm biến màu có thể hiệu quả khi
bạn chỉ kiểm tra 1 khu vực rất nhỏ, nhưng khi khu vực cần kiểm tra có diện tích lớn thì
bài toán sẽ phức tạp hơn khiến bạn phải thay đổi phương án xử lý. Và sử dụng Camera
là lựa chọn tối ưu nhất có thể thay thếcảm biến màu. Bạn hãy tưởng tượng nếu bạn sử
dụng 1 camera độ phân giải là 640×480 (px) tức là bạn đã có 640×480 =307.200 điểm
ảnh và mỗi điểm ảnh có thể coi là 1 cảm biến có độ phân giải là 24bits sẽ mang lại cho
bạn kết quả nhận diện hay kiểm tra sản phẩm dựa vào màu sắc hiệu quả nhất.

Phan Đức Minh Luân – Tự Động Hoá K58 2


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

Hình 1.3 Phát hiện nhựa màu xanh còn sót trên khuôn

Hình 1.4 Phát hiện nhựa màu xanh không còn trên khuôn
1.1.3 Đo lường/kiểm tra kích thước không tiếp xúc
Các phép đo truyền thống được thực hiện với các dụng cụ đo bằng cơ (đã được
hiệu chỉnh rất chính xác) và người thực hiện đo phải được huấn luyện về kĩ thuật đo mới
đảm bảo kết quả đo có độ tin cậy cao. Khi sản xuất hàng loạt, sản phẩm rất nhiều & nhỏ,
khiến cho việc kiểm tra kích thước sản phẩm bằng con người trở nên hết sức khó khăn
và tốn kém. Vì vậy ta cần 1 giải pháp tối ưu và hiệu quả hơn như giải pháp đo kiểm kích
thước không tiếp xúc dùng camera giúp xác định chính xác khoảng cách, góc, diện tích,
độ khớp đường, độ khớp tròn … Từ đó nhà máy của bạn sẽ tiết kiệm được rất nhiều chi
phí nhân công, giảm được tối đa sai sót so với phương pháp đo kiểm truyền thống.

Phan Đức Minh Luân – Tự Động Hoá K58 3


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

Hình 1.5 Đo kích thước kềm bằng camera


1.1.4 Kiểm tra kí tự quang học (OCV)
Ứng dụng kiểm tra kí tự quang học được ứng dụng chính là xác minh các kí tự
như ngày tháng, mã sản phẩm… được in trên bao bì sản phẩm. Giải pháp OCV có thể
dựa trên các phông chữ có sẵn hoặc có thể lấy mẫu trực tiếp giúp việc xác minh chất
lượng in trở nên vô cùng đơn giản. Thời gian xử lý hình ảnh vô cùng thấp kết hợp với
Camera đọc hình tốc độ cao hoàn toàn có thể đáp ứng được yêu cầu sản xuất với năng
suất lên đến hàng nghìn sản phẩm trong 1 giờ.

Hình 1.6 Kiểm tra chất lượng bề mặt sản phẩm bằng camera công nghiệp

Phan Đức Minh Luân – Tự Động Hoá K58 4


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

1.1.5 Điều hướng Robot

Trong nhiều công việc do khan hiếm nguồn lao động hoặc phải hạn chế sử dụng
con người thì sử dụng Robot là một giải pháp thay thế. Robot đóng vai trò là cơ cấu
chấp hành, sẽ nhận mệnh lệnh từ bộ điều khiển hay máy tính để gắp/hút/nhặt sản phẩm
và sắp xếp/thả chúng vào 1 vị trí khác được lập trình sẵn. Nhưng bộ điều khiển cần dữ
liệu để có thể xử lý và đưa ra quyết định điều khiển Robot, dữ liệu đó có thể được đưa
về từ các cảm biến hoặc camera, với những quy trình phức tạp thì camera sẽ là giải pháp
tối ưu hơn.

Hình 1.7 Điều hướng tay robot gắp tôm bằng camera
1.1.6 Đọc mã vạch
Đọc, xác định và xử lý hàng trăm và hàng ngàn mã vạch mỗi ngày không phải là
nhiệm vụ dễ dàng và điều mà con người đơn giản không thể làm được ở quy mô lớn.
Ví dụ, điện thoại di động và thiết bị di động yêu cầu bảng mạch in nhỏ hơn hoặc
nhỏ hơn (hoặc PCB). Khi các nhà sản xuất bị áp lực phải sản xuất khối lượng PCB cao
hơn cho thị trường công nghệ đang phát triển, họ đang hướng tới một quy trình được
gọi là panelization. Trong quá trình này, một số bảng mạch giống hệt nhau được in trên
một bảng lớn, mỗi mạch sau đó được tách ra để kiểm tra lần cuối, để kiểm tra các bảng
này, tuy nhiên, một giải pháp dựa trên xử lý ảnh có tên là PanelScan đã được phát triển
để đọc mã vạch – là các mã định danh duy nhất của mỗi mạch có trên bảng PCN.
Trong lịch sử, con người đã áp dụng nhiệm vụ này bằng cách sử dụng máy quét
mã vạch cầm tay, điều này rất tốn thời gian và gây ra lỗi cho con người. Bằng cách thực
hiện một giải pháp dựa trên Machine Vision, các nhà sản xuất PCB có thể tiết kiệm được
khá nhiều chi phi sản xuất nhờ kiểm tra và ngăn ngừa sản phẩm lỗi.

Phan Đức Minh Luân – Tự Động Hoá K58 5


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

Hình 1.7 Đọc mã vạch bằng phương pháp xử lý ảnh


1.1.7 Giám sát sản phẩm và thành phần lắp ráp
Các nhà máy sản xuất hiệu suất cao cần đảm bảo các sản phẩm và linh kiện rơi
ra khỏi dây chuyền sản xuất tuân thủ các nguyên tắc về chất lượng, an toàn và sản
xuất. Với suy nghĩ này, Công ty Tự động hóa Acquire Automation đã phát triển một
bộ giải pháp giúp các doanh nghiệp đảm bảo các tiêu chuẩn lắp ráp sản phẩm và thành
phần của họ đang được thi hành.
Ví dụ, một trong những giải pháp của họ thực hiện Machine Vision cho phép
các nhà sản xuất kiểm tra chai ở chế độ xem 360 độ đầy đủ để đảm bảo rằng các sản
phẩm được đặt trong bao bì chính xác và cũng có thể kiểm tra các thuộc tính quan
trọng khác của các sản phẩm đóng gói như:
• Đóng nắp / đóng dấu
• Chức vụ
• Nhãn
• Chất lượng in
• ….
Tất cả điều này giúp tăng thông lượng của dây chuyền sản xuất đồng thời giảm
số lượng sản phẩm bị thu hồi và tăng năng suất và cuối cùng, giữ cho người tiêu dùng
hài lòng.

Phan Đức Minh Luân – Tự Động Hoá K58 6


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

Hình 1.8 Công đoạn giám sát sản phẩm sử dụng xử lý ảnh
1.1.8 Theo dõi khiếm khuyết
Có thể hiểu được, nếu bạn điều hành một dây chuyền sản xuất, bạn muốn sản
xuất các linh kiện hoặc sản phẩm không có khuyết tật. Xử lý ảnh là một công nghệ có
thể giúp các doanh nghiệp đạt được điều này.
Điều đó nói rằng, các hệ thống kiểm tra bằng thị giác máy có thể khác nhau về
mặt triển khai, một số yêu cầu người vận hành trong khi các giải pháp dựa trên Vision
phức tạp hơn không cần người vận hành. Một công ty có tên Shelton có một hệ thống
kiểm tra bề mặt gọi là WebSPECTOR xác định lỗi và lưu trữ hình ảnh và siêu dữ liệu
đi kèm liên quan đến hình ảnh. Khi các mặt hàng rơi vào dây chuyền sản xuất, các lỗi
được phân loại theo loại của chúng và được chỉ định một lớp đi kèm.
Việc làm này cho phép các nhà sản xuất phân biệt giữa các loại khiếm khuyết
khác nhau, những người sau đó có thể chỉ muốn dừng dây chuyền sản xuất khi X số loại
Y bị lỗi đã xảy ra. Một công nghệ dựa trên tầm nhìn máy khác của Shelton có tên là
WebSpector, sử dụng phần mềm hình ảnh và máy ảnh hiện đại có thể cải thiện năng suất
của nhà sản xuất vải lên 50%.

Phan Đức Minh Luân – Tự Động Hoá K58 7


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

Hình 1.9 Ứng dụng xử lý ảnh để theo dõi dây chuyền sản xuất
1.1.9 Kiểm tra 3D
Xử lý ảnh có thể đóng một vai trò to lớn trong lĩnh vực ô tô. Một báo cáo cho
thấy thị trường thị giác máy tổng thể có thể trị giá tới 14,43 tỷ đô la vào năm 2022.
Một hệ thống kiểm tra bằng thị giác máy có chứa máy ảnh Dalsa Genie Nano
đang được sử dụng trong dây chuyền sản xuất để thực hiện các nhiệm vụ mà con người
đôi khi có thể phải vật lộn. Trong case study này, hệ thống sử dụng hình ảnh có độ phân
giải cao để xây dựng mô hình 3D đầy đủ các thành phần và chân kết nối của chúng. Khi
các thành phần đi qua nhà máy sản xuất, hệ thống thị giác máy sẽ quét nhiều hình ảnh
từ các góc khác nhau để tạo ra mô hình 3D, những hình ảnh này khi được kết hợp sẽ cho
phép hệ thống xác định xem các chân kết nối trên mạch có bị lỗi có thể gây ra hậu quả
tai hại không xuống dây chuyền sản xuất.
Kiểm tra 3D bằng xử lý ảnh có nhiều ứng dụng nhưng một trong những case
study phổ biến nhất cho công nghệ là sản xuất ô tô. Với các lỗi điện chiếm rất nhiều lỗi
ô tô hiện nay, việc có thể thực hiện quét 3d các chân kết nối có thể giúp các nhà sản xuất
ô tô tiết kiệm chi phí, giảm cơ hội vận chuyển các bộ phận điện bị lỗi và giúp cải thiện
an toàn cho người lái.

Phan Đức Minh Luân – Tự Động Hoá K58 8


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

Hình 1.10 Kiểm tra 3D sản phẩm sử dụng xử lý ảnh


1.1.10 Phân tích văn bản và viết tay
Nhận dạng ký tự quang học không có gì mới, nó đã xuất hiện khá lâu trong thế
giới điện toán. Điều đó nói rằng, việc máy phát hiện và trích xuất văn bản viết tay từ các
ghi chú, chữ cái v.v … có chứa hình ảnh là một điều hoàn toàn khác.
Microsoft đã phát hành công nghệ trong ngăn xếp Dịch vụ nhận thức của họ
được gọi là API thị giác máy tính, với nó, bạn có thể cung cấp hình ảnh cho điểm cuối
và API sẽ phát hiện sự hiện diện của văn bản có thể đọc được và biến nó thành một dòng
văn bản! ví dụ về điều này trong ảnh chụp màn hình dưới đây: Có thể trỏ máy vào một
hình ảnh có chứa văn bản, thay vì nhập bằng tay có thể là một sự tăng năng suất lớn
trong doanh nghiệp.

Hình 1.11 Phân tích chữ viết

Phan Đức Minh Luân – Tự Động Hoá K58 9


Chương 1: Phân tích ứng dụng chung của xử lý ảnh trong công nghiệp

1.2 Lợi ích

- Nó giải quyết tình trạng thiếu lao động có kỹ năng


- Tự động hóa cải thiện tính nhất quán và chất lượng của các nhiệm vụ kiểm
tra và tối ưu hóa quy trình làm việc.
- Phát hiện sớm các lỗi trên sản phẩm, đảm bảo quy trình sản xuất chất
lượng cao và tránh thời gian ngừng sản xuất. Hệ thống lưu hình ảnh của
các sản phẩm lỗi được tự động xác định và loại bỏ khỏi quá trình sản xuất.
- Đảm bảo chất lượng nhanh hơn đáng kể, giảm chi phí cho các thử nghiệm
và kiểm tra bằng tay và / hoặc trực quan. Đảm bảo chất lượng tự động với
độ tin cậy 99,98% nâng cao cả năng suất và chất lượng sản phẩm.

Phan Đức Minh Luân – Tự Động Hoá K58 10


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

CHƯƠNG 2 PHƯƠNG PHÁP NHẬN DẠNG MÃ QR-CODE TRONG CÔNG


NGHIỆP
2.1 Đặt vấn đề
Với sự tăng trưởng ngày càng mạnh mẽ của công nghệ số thì việc kiểm tra dữ
liệu, thông tin của một sản phẩm hoặc cá nhân tổ chức nào đó một cách nhanh chóng và
thuận tiện là điều vô cùng quan trọng.
Vì lý do đó mã qrcode được ra đời nhằm đáp ứng tối đa những yêu cầu trên. Mã
QR đang rất được giới marketing và quảng cáo chuộng dùng cho các ý tưởng quảng cáo
tạp chí, trên các băng ghế công viên, xe buýt, đóng gói sản phẩm hay bất kỳ sản phẩm
vật lý nào mà người tiêu dùng muốn tìm hiểu thêm thông tin về nó. Ngoài ra các công
ty xí nghiệp hoặc các trường học cũng đều có thể sử dụng mã qrcode để lưu trữ thông
tin của nhân viên cũng như sinh viên học sinh của mình để phục vụ cho việc điểm danh,
điểm chuyên cần của nhân viên và học sinh của mình một cách nhanh chóng và thuận
tiện nhất.
Vì vậy chúng em đã nghiên cứu phương pháp nhận dạng ảnh tự động bằng
QRcode với mục đích nghiên cứu tìm hiểu và xây dựng hệ thống tạo mã qrcode để phục
vụ cho các ứng dụng của công nghiệp.
2.2 Giới thiệu về QR-CODE
2.2.1 QR-CODE: Mã vạch thế giới mới
- QR Code bây giờ không hẳn là quá xa lạ, nó bắt đầu xuất hiện khắp nơi như
nhãn bia sản phẩm, và gần như là phương thức nhận diện chủ yếu cho ứng dụng di động.
Vậy QR Code là gì? . QR Code, viết tắt của Quick response code (tạm dịch "Mã phản
hồi nhanh") hay còn gọi là mã vạch ma trận (matrixbarcode) là dạng mã vạch hai chiều
(2D) có thể được đọc bởi một máy đọc mã vạch hay smartphone (điện thoại thông minh)
có chức năng chụp ảnh (camera) với ứng dụng chuyên biệt để quét mã vạch.
- Một mã QR có thể chứa đựng thông tin một địa chỉ web (URL), thời gian diễn
ra một sự kiện, thông tin liên hệ (như vCard), địa chỉ email, tin nhắn SMS, nội dung ký
tự văn bản hay thậm chí là thông tin định vị vị trí địa lý. Tùy thuộc thiết bị đọc mã QR
mà bạn dùng khi quét, nó sẽ dẫn bạn tới một trang web, gọi đến một số điện thoại, xem
một tin nhắn...
- Điểm khác nhau giữa mã QR và mã vạch truyền thống là lượng dữ liệu chủng
nắm giữ hay chia sẻ. Các mã vạch truyền thống có các đường vạch thẳng dài một chiều
và chỉ có thể lưu giữ 20 số chữ số, trong khi các mã QR hai chiều có thể lưu giữ thông
tin hàng ngàn ký tự chữ số. Mã QR nắm giữ nhiều thông tin hơn và tính chất dễ sử dụng
sẽ giúp ích rất nhiều cho người dùng trong mọi lĩnh vực. Ngoài ra, QR code có lợi thế
hơn do có thể đọc được cả hai chiều cả ngang và dọc và từ bất kỳ hướng nào mà không
bị ảnh hưởng bởi chất liệu hay nền mà nó đang sử dụng. Chính vì thế mà QR code đang
là xu hướng hiện nay và dần thay thế cho Bar code truyền thống
- Qrcode có 2 loại chính : động và tĩnh :
+ QRcode động, hay còn gọi là “Qrcode trực tiếp”: sau khi được khởi tạo, liên
kết chính của chúng có thể được chỉnh sửa mà không cần can thiệp vào code. Khi được

Phan Đức Minh Luân – Tự Động Hoá K58 11


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

quét, code động sẽ chuyển hướng bạn đến máy chủ, nơi lưu chữ thông tin cụ thể trong
một cơ sở dữ liệu và được lập trình để tương tác cụ thể với hình ảnh được quét đó. Code
động tiện lợi hơn vì chúng được tạo ra áp dụng một lần, và bạn có thể thay đổi các thông
tin được hiển thị khi đó được quét như cac liên kết(domain,web) để hiển thị thông tin.
+ QRcode tĩnh: không giống như các code động, code tĩnh có thể lữu trữ các
thông tin trực tiếp qua hình thức văn bản hoặc dẫn đến các trang web mà không cần
chuyển hướng qua liên kết thứ cấp. Điều này có nghĩa rằng các thông tin hoặc liên kết
không thể thay đổi hoặc chỉnh sửa(bạn sẽ phải tạo ra một code tĩnh mới mỗi lần muốn
cập nhật). Code tĩnh rất lý tưởng cho những người muốn mã chứa thông tin của họ vĩnh
viễn(ví dụ, thông tin về ngày sinh và nhóm máu).

Hình 2.1 Hình ảnh mã QR code


2.2.2 Thuật toán QR-CODE

Hình 2.2 Thuật toán QR-CODE

Phan Đức Minh Luân – Tự Động Hoá K58 12


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

❖ Tạo một chuỗi nhị phân


- Bước đầu tiên để tạo một mã QR code là tạo một chuỗi nhị phân bao gồm dữ
liệu và thông tin về chế độ mã hóa, cũng như độ dài của dữ liệu.
- Trong phần này chúng ta sẽ tìm hiểu mã hóa chuỗi HELLO WORLD ở QR code
phiên bản 1, với mức độ sửa lỗi là 0.
- Bước 1: Mã hóa Bộ chỉ chế độ (Mode Indicator) Một bộ chỉ chế độ là một chuỗi
4 bit thể hiện chế độ dữ liệu bạn đang sử dụng: kiểu số, kiểu chuỗi, kiểu nhị phân hoặc
Nhật ngữ.

- Với chuỗi HELLO WORLD, là kiểu chuỗi, vậy nên Bộ chỉ chế độ sẽ là 0010.
Chuỗi nhị phân: 0010
- Bước 2 : Mã hóa độ dài của dữ liệu Trong bước này, chúng ta xác định có bao
nhiêu ký tự trong thông điệp, và chuyển độ dài đó thành một số nhị phân. Với chuỗi
HELLO WORLD, có 11 ký tự kể cả khoảng trắng. Ta chuyển 11 sang nhị phân, được
1011. Xem danh sách ở dưới. Khi mã hóa độ dài của dữ liệu, chúng ta mã hóa nó sử
dụng một số lượng bit đặc tả. Như đã nói ở đầu, chúng ta sử dụng QR code phiên bản 1,
vậy nên chúng ta cần sử dụng 9 bit để mã hóa độ dài dữ liệu. Ta thêm số 0 vào đầu chuỗi
cho đến khi đủ 9 bit: 000001011.
Phiên bản 1 tới 9:
+ Kiểu số: 10 bits -Kiểu chuôi: 8 bits -Kiểu nhị phân: 8 bits
+ Kiểu Nhật ngữ: 8 bits Phiên bản 10 tới 26
+ Kiểu số: 12 bits
+ Kiểu chuỗi: 11 bits -Kiểu nhị phân: 16
+ Kiểu Nhật ngữ: 10 bits Phiên bản 27 tới 40
+ Kiểu số: 14 bits -Kiểu chuỗi: 13 bits -Kiểu nhị phân: 16 bits
+ Kiểu Nhật ngữ: 12 bits Tới đây chuỗi nhị phân chúng ta là: 0010 000001011.
- Bước 3 : Để mã hóa chuỗi ký tự, ta chia chuỗi thành các cặp ký tự: HE,LL,O
,WO,RL,D. Với mỗi cặp ký tự, ta lấy giá trị mã ASCII của ký tự đầu nhân với 45, sau
đó cộng với giá trị mã ASCII của ký tự sau. Sau đó chuyển kết quả thu được thành một
chuỗi nhị phân 11 bit. Đối với các ký tự không có cặp, tao lấy giá trị mã ASCII của nó

Phan Đức Minh Luân – Tự Động Hoá K58 13


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

rồi chuyển thành chuỗi nhị phân 6 bit. Đối với các chế độ khác: kiểu số, kiểu nhị phần,
kiểu Nhật ngữ, tạo sử dụng phương thức khác để mã hóa dữ liệu.


- Bước 4: Hoàn thành các bit
+ Với chuỗi bit thu được ở trên, ta phải chắc chắn rằng nó có đủ độ dài. Điều này
phụ thuộc vào việc có bao nhiêu bit chúng ta cần để tạo phiên bản và sửa lỗi.
+ Với QR code phiên bản 1, sửa lỗi mức độ Q. Chúng ta phải tạo một chuỗi 104
bit. Nếu chuỗi bit nhỏ ít hơn 104, ta phải thêm 4 số 0 vào cuối chuỗi. Nếu thêm 4 số 0
được một chuỗi nhiều hơn 104, ta chỉ cần thêm số 0 cho tới khi nào đủ 104 bit.
+ Chuỗi của chúng ta có 59 bit, ta thêm 4 số 0 vào cuối chuỗi. (Còn nếu chuỗi có
102 bit thì ta thêm 2 số 0).
+ Chuỗi của ta bây giờ là:
0010 000001011 01100001011 01111000110 10001011100 10110111000
10011010100 001101 0000
- Bước 5:
+Giới hạn chuỗi thành các chuỗi con 8 bit, sau đó thêm các số 0 nếu cần.
+ Bước này ta chia chuỗi thành các nhóm 8 bit.
+ Ở chuỗi con cuối cùng, nếu chưa đủ 8 bit thì ta thêm vào sau đó các số 0 cho
tới khi đủ. Chuỗi của chúng ta thêm 2 số 0 vào sau chuỗi con cuối cùng. 00100000
01011011 00001011 01111000 11010001 01110010 11011100 01001101 01000011
01000000
- Bước 6:
+ Thêm các từ vào cuối nếu chuỗi quá ngắn Nếu chuỗi bit của chúng ta vẫn chưa
đủ dài, có hai chuỗi con đặc biệt: 11101100 và 00010001. Ta thêm thay phiên hai chuỗi
con này vào chuối chuỗi của chúng ta.
+ Chuỗi của chúng ta chỉ có 10 chuỗi con, cần phải thêm vào 3 chuỗi con nữa.
Bắt đầu thêm 11101100, sau đó thêm 00010001, rồi tới 11101100. Nếu cần nhiều hơn
thì cứ thêm lần lượt như vậy cho tới khi đủ số chuỗi con.
+ Chuỗi của chúng ta bây giờ: 00100000 01011011 00001011 01111000 11010001
01110010 11011100 01001101 01000011 01000000 11101100 00010001 11101100

Phan Đức Minh Luân – Tự Động Hoá K58 14


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

2.2.3 Tạo bộ mã sửa lỗi


- Bước 1:
+ Chọn mức sửa lỗi
+ Bước đầu tiên để tạo mã sửa lỗi là xác định có bao nhiêu từ để tạo cho phiên
bản QR và mức độ sửa lỗi. Xem bảng sửa lỗi để biết thêm thông tin chi tiết
+ Cấp độ sửa lỗi:

- Bước 2: Tạo một thông điệp đa thức


+ Chúng ta chuyển 13 khối dữ liệu ở trên thành dạng thập phân: 00100000
01011011 00001011 01111000 11010001 01110010 11011100 01001101 01000011
01000000 11101100 00010001 11101100
+ Ta được: 32,91, 11, 120, 209, 114, 220, 77, 67, 64, 236, 17, 236
+ Các số này sẽ là hệ số của đa thức. Ta có:
32x25 + 91x24 + 11x23 + 120x22 + 209x21 + 114x20 + 220x19 + 77x18 + 67x17 +
64x16 + 236x15 + 17x14 + 236x13
+ Lũy thừa của số hạng đầu tiên được tính:
+ Số khối dữ liệu + số mã sửa lỗi -1
Ở đây là 13+13-1=25. Vậy nên số hạng đầu tiên là 32x25
- Bước 3:
+ Tạo bộ tạo đa thức Tiếp theo ta sẽ tạo một bộ tạo đa thức. Ta chia thông điệp
đa thức bởi bộ tạo này để tạo mã sửa lỗi.
+ Các bộ tạo đa thức đến từ một cái gì đó gọi là một trường hữu hạn , cũng được
biết đến như là một trường Galois. Các mã QR sử dụng một trường Galois có 256 yếu
tố, có nghĩa là, mục đích của chúng ta, rằng những con số mà chúng ta sẽ được giao dịch
với sẽ luôn luôn tối đa là 255 và ít nhất là 0
+ Để thực hiện việc phân chia đa thức, chúng ta sẽ được chuyển đổi qua lại giữa
các ký hiệu a (alpha) và các số nguyên. Alpha và các giá trị số nguyên từ bảng log và
antilog.
+ Bộ tạo đa thức luôn luôn có dạng (x - a) (x - a 2)... (x - a t), , t tương đương với
số lượng mã sửa lỗi cần thiết trừ đi 1.Chúng ta cần 13 mã sửa lỗi, do đó, t trong trường
hợp này là 12.

Phan Đức Minh Luân – Tự Động Hoá K58 15


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

+ Ta thực hiện triển khai tất cả các thành phần (x - 1) cho tới khi chúng ta được
đa thức. Công việc này thực hiện bằng tay khá phức tạp, sử dụng generator polynomial
tool. Ở đây chúng ta tạo 13 mã sửa lỗi:
a0x25 + a74x24 + a152x23 + a176x22 + a100x21 + a86x20 + a100x19 + a106x18 +a104x17 +
a x + a218x15 + a206x14 + a140x13 + a78x12
130 16

+ Dưới đây, cho thấy từng bước của việc phân chia đa thức cần thiết để tạo ra mã
sửa lỗi
+ Kết quả của bước này ta được mã sửa lỗi:
168 72 22 82 217 54 156 0 46 15 180 122 16
+ Ta đặt đoạn mã sửa lỗi sau đoạn mã dữ liệu:
32 91 11 120 209 114 220 77 67 64 236 17 236 168 72 22 82 217 54 156 0 46 15
180 122 16
+ Chuyển qua nhị phân:
00100000 01011011 00001011 01111000 11010001 01110010 11011100
01001101 01000011 01000000 11101 100 00010001 11101100 10101000 01001000
00010110 01010010 11011001 001 10110 10011100 00000000 00101110 00001111
10110100 01111010 00010000
2.2.4 Chọn mẫu mặt nạ phù hợp
- Bây giờ chúng ta đã mã hóa các dữ liệu, tất cả những gì còn lại là chọn mẫu mặt
nạ tốt nhất. Một mẫu mặt nạ thay đổi theo các bit, theo một quy tắc cụ thể. Các mẫu mặt
nạ được định nghĩa trong tiêu chuẩn mã QR. Có 8 mẫu mặt nạ. Sử dụng mô hình mặt nạ
cho phép chúng tôi để tạo ra tám mã QR khác nhau và sau đó chọn một trong đó sẽ được
dễ dàng nhất cho một đầu đọc QR để quét. Một đặc biệt mã QR có thể có các mẫu nhất
định hoặc những đặc điểm mà làm cho nó khó khăn cho thiết bị đọc QR chính xác quét
mã QR. Ví dụ, nếu điểm ảnh của cùng một màu sắc xảy ra gần nhau, một đầu đọc QR
có thể gặp khó khăn khi đọc chính xác các điểm ảnh.

- Mỗi mô hình mặt nạ tạo ra một mã QR code khác nhau. Sau khi chúng ta tạo ra
các mã khác nhau QR trong nội bộ, chúng tôi cung cấp cho mỗi một Số điểm xử phạt
theo các quy tắc quy định trong tiêu chuẩn mã QR. Sau đó, chúng tôi cho ra mã QR có
số điểm tốt nhất.

- Bước 1: Tạo mã QR code:


+ Với QR code phiên bản 1, ta cần một ma trận 21x21.
+ Tất cả các mã QR code đều có một vài mẫu nhận diện chắc chắc phải đc thể
hiện. Ở hình bên dưới, có ba vị trí nhận diện được đặt ở trên cùng bên trải, trên cùng bên
phải và dưới cùng bên trái của ma trận. Các mã QR code còn có một pixel đen ở bên
phải của vị trí nhận diện bên dưới cùng bên trái. Ngoài ra còn có mẫu timing.

Phan Đức Minh Luân – Tự Động Hoá K58 16


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

- Vị trí điều chỉnh mô hình Tử ví dụ này là chỉ mã hóa một phiên bản 1 mã QR,
chúng tôi không cần thêm bất kỳ mô hình điều chỉnh vị trí. Tuy nhiên, nếu chúng ta đã
mã hóa một mã QR phiên bản 2 hoặc lớn hơn, chúng tôi sẽ thêm các mẫu điều chỉnh vị
trí ma trận. Bảng dưới đây liệt kê các tọa độ của nơi để đặt các mô hình điều chỉnh vị
trí. Xem ví dụ ở bảng dưới đây.

- Ví dụ, hình ảnh dưới đây cho thấy các mô hình điều chỉnh vị trí cho phiên bản
mã QR 8. Mỗi mô hình điều chỉnh vị trí là một điểm ảnh màu đen bao quanh bởi các
điểm ảnh màu trắng được bao quanh bởi các điểm ảnh màu đen. Theo bảng trên, cho
phiên bản mã QR 8, vị trí các mô hình điều chỉnh 6, 24, và 42. Như ta thấy trong hình
ảnh, mô hình điều chỉnh vị trí được đặt tất cả các giao điểm của ba con số này, ngoại trừ
đã có lớn hơn mô hình phát hiện vị trí không đặt mô hình điều chỉnh vị trí trên hàng đầu
của các mô hình phát hiện vị trí trong góc của mã QR. Như hình :

Phan Đức Minh Luân – Tự Động Hoá K58 17


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

- Bảng sau đây hiển thị các bit thông tin các loại được yêu cầu cho các cấp, sửa
lỗi khác nhau và các mẫu mặt nạ:

- Trong ví dụ Hello World mô hình mặt nạ tốt nhất là 0 (điều này được giải thích
dưới đây). Chúng ta đang sử dụng mức độ hiệu chỉnh lỗi Q, vì vậy các chuỗi loại thông
tin là 011010101011111. Như trong hình trên, các chuỗi loại thông tin được hiển thị hai
lần. Một trong số đó là dưới hai mô hình phát hiện vị trí hàng đầu, bắt đầu từ bên trái.
Nó bỏ qua quá khứ mô hình thời gian và phần dữ liệu của lưới. Điều thứ hai là quyền
của các mẫu phát hiện vị trí, bắt đầu từ phía dưới, bỏ qua dấu chấm đen, phần dữ liệu,
và mô hình thời gian. Cả hai sọc cùng một chuỗi: 011010101011111.
2.2.5 Thêm thông tin phiên bản
- Nếu mã QR của bạn là phiên bản 7 hoặc lớn hơn, bạn cần phải thêm các bit
thông tin phiên bản ma trận. Đây là những được đặt ở bên trái của mô hình trên bên phải

Phan Đức Minh Luân – Tự Động Hoá K58 18


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

phát hiện vị trí và trên các mô hình phát hiện vị trí phía dưới bên trái, như thể hiện trong
hình ảnh dưới đây, trong đó có một phiên bản 9 Mã QR. Như hình:

- Bảng sau đây cho thấy một danh sách của các bit thông tin phiên bản cần thiết
cho mỗi phiên bản. Những bit được đặt trong cấu hình sau đây trong các vị trí được chỉ
định trong hình :

- Trong ví dụ của chúng ta, mã QR là nhỏ hơn so với phiên bản 7, vì vậy chúng
ta không cần thêm các bit thông tin phiên bản mã.

2.2.6 Thêm dữ liệu bist


Cuối cùng, ta thêm các bit dữ liệu. Trong bước này, ta thay đổi chút tùy thuộc
vào mô hình mặt nạ mà ta đang sử dụng trước khi thêm chút thực tế, sử dụng các mẫu
mặt nạ để quyết định xem có nên thay đổi màu sắc của các bit hiện tại hay không.

Phan Đức Minh Luân – Tự Động Hoá K58 19


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

2.2.7 Sắp xếp theo cột từ dưới lên


- Các bit dữ liệu được thêm vào theo một thứ tự cụ thể. Các điểm ảnh đầu tiên
được thêm vào phía dưới bên phải của mã QR. Điều thứ hai được đặt ở bên trái đó. Hai
tiếp theo được đặt trên đầu những người đầu tiên theo thứ tự. Hai cột điểm ảnh này vẫn
tiếp tục đi lên theo cách này, bỏ qua bất kỳ điểm ảnh đã được thiết lập, cho đến khi nó
đạt đến hàng đầu của mã QR.

Hình 2.3 Sắp xếp theo cột

- Xuống cột một khi nó đạt đến đỉnh, một cột hai-pixel mới bắt đầu, thời gian này
sẽ đi xuống

- Khi đạt đến dưới cùng của lưới, thay đổi hướng một lần nữa, và tiếp tục trong
mô hình này giống như đường đi của con rắn.
❖ Chắc chắn bỏ qua mẫu timing :

Phan Đức Minh Luân – Tự Động Hoá K58 20


Chương 2: Phương pháp nhận dạng mã QR-CODE trong công nghiệp

- Khi thêm pixels, hãy chắc chắn để bỏ qua các mô hình thời gian.

- Và các mẫu timing ở chiều dọc:

2.2.8 Hoàn tất QR-CODE


- Tiếp tục theo cách này cho đến khi tất cả của các điểm ảnh dữ liệu đã được đặt.
Sau đó, các mã QR là hoàn tất. Tuy nhiên, các đặc điểm kỹ thuật mã QR yêu cầu bạn sử
dụng các mô hình mặt nạ tốt nhất có thể.

- Hình ảnh sau khi hoàn thiện :

Phan Đức Minh Luân – Tự Động Hoá K58 21


Chương 3: Ứng dụng của phương pháp nhận dạng mã QR-COCE

CHƯƠNG 3 ỨNG DỤNG CỦA PHƯƠNG PHÁP NHẬN DẠNG MÃ QR-CODE


3.1 Code chương trình

import cv2
import numpy as np
from pyzbar.pyzbar import decode

#img = cv2.imread('1.png')
cap = cv2.VideoCapture(0)
cap.set(3,640)
cap.set(4,480)

while True:

success, img = cap.read()


for barcode in decode(img):
myData = barcode.data.decode('utf-8')
print(myData)
pts = np.array([barcode.polygon],np.int32)
pts = pts.reshape((-1,1,2))
cv2.polylines(img,[pts],True,(255,0,255),5)
pts2 = barcode.rect
cv2.putText(img,myData,(pts2[0],pts2[1]),cv2.FONT_HERSHEY_SIMPLEX,
0.9,(255,0,255),2)

cv2.imshow('Result',img)
cv2.waitKey(1)

Phan Đức Minh Luân – Tự Động Hoá K58 22


Chương 3: Ứng dụng của phương pháp nhận dạng mã QR-COCE

3.2 Kết quả thu được

Phan Đức Minh Luân – Tự Động Hoá K58 23


Chương 3: Ứng dụng của phương pháp nhận dạng mã QR-COCE

Phan Đức Minh Luân – Tự Động Hoá K58 24


Phụ lục

Phan Đức Minh Luân – Tự Động Hoá K58 25

You might also like