Tài liệu Đồ án Vấn đề xử lý ảnh: Mục lục
Lời nói đầu……………………………………………………………….……….…
Phần một : tổng quan về matlab……………………………………………………
Phần hai:LÝ THUYẾT XỬ LÝ ẢNH……………………………….……………..
Chương 1:Giới thiệu hệ thống xử lý ảnh……………………………………………
Chương 2:Thu nhận ảnh…………………………………………………………….
Chương 3:Phân tích ảnh………………………………………..….……….…....….
Chương 4:Nhận dạng ảnh ……………………………………………………...…..
Phần ba:THỰC NGHIỆM…………………………………………………………
Kết luận…………………………………………………………………………….
Tài liệu tham khảo………………………………………………………………….
LỜI NÓI ĐẦU
Xử lý ảnh là một bộ môn rất khó.Bộ môn này mới được đưa vào giảng dạy trong các trường đại học.Và hiện tại Trong các trường đại học, cao đẳng, xử lý ảnh đã trở thành một môn học chuyên ngành của sinh viên các ngành Công nghệ Thông tin, Viễn thông.
Xử lý ảnh bao gồm 3 bước chính : thu nhận ảnh , phân tích và xử lý ảnh ,hiện thị ảnh và nhận dạng
Nội dung của bài tập lớn là : nhận dạng số qua camera kết nối với máy tính
Nội dung được tóm tắt như sau
Ảnh đầu vào nguyên gốc
Xử lý mức...
50 trang |
Chia sẻ: hunglv | Lượt xem: 3700 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Đồ án Vấn đề xử lý ảnh, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Mục lục
Lời nĩi đầu……………………………………………………………….……….…
Phần một : tổng quan về matlab……………………………………………………
Phần hai:LÝ THUYẾT XỬ LÝ ẢNH……………………………….……………..
Chương 1:Giới thiệu hệ thống xử lý ảnh……………………………………………
Chương 2:Thu nhận ảnh…………………………………………………………….
Chương 3:Phân tích ảnh………………………………………..….……….…....….
Chương 4:Nhận dạng ảnh ……………………………………………………...…..
Phần ba:THỰC NGHIỆM…………………………………………………………
Kết luận…………………………………………………………………………….
Tài liệu tham khảo………………………………………………………………….
LỜI NĨI ĐẦU
Xử lý ảnh là một bộ mơn rất khĩ.Bộ mơn này mới được đưa vào giảng dạy trong các trường đại học.Và hiện tại Trong các trường đại học, cao đẳng, xử lý ảnh đã trở thành một mơn học chuyên ngành của sinh viên các ngành Cơng nghệ Thơng tin, Viễn thơng.
Xử lý ảnh bao gồm 3 bước chính : thu nhận ảnh , phân tích và xử lý ảnh ,hiện thị ảnh và nhận dạng
Nội dung của bài tập lớn là : nhận dạng số qua camera kết nối với máy tính
Nội dung được tĩm tắt như sau
Ảnh đầu vào nguyên gốc
Xử lý mức xám
Trích lấy biên ảnh
Nhận dạng ký tự
Xử lý kết quả
Thu thập ảnh
Giới hạn của bài làm :
- Đề tài hoạt động tương đối vì kỹ năng kết hợp giữa ngơn ngữ lập trình MatLab chúng em cịn kém.
- Do kiến thức của chúng em cịn hạn chế nên việc thực hiện đề tài khơng tránh khỏi những sai xĩt trong tính tốn và thi cơng. Vì vậy mong quý Thấy (Cơ) chỉ dẫn và đĩng gĩp ý kiến thêm.
PHẦN I : TỔNG QUAN VỀ MATLAB
1.1 MATLAB là gì ?
- MATLAB là ngơn ngữ lập trình cấp cao cho mục đích tính tốn kỹ thuật, chương trình tích hợp tính tốn, đồ hoạ và lập trình trong một mơi trường dễ sử dụng nơi mà tất cả các vấn đề và lời giải được biểu diễn dưới dạng ghi chú tốn học.
- MATLAB là một hệ thống tương tác mà tất cả các phần tử dữ liệu cơ bản là một mảng khơng yêu cầu về mặt kích thước. Đây là một thuận lợi cho phép người sử dụng giải quyết các bài tốn trong kỹ thuật đặc biệt là các cơng thức được xây dựng từ ma trận hay vector.
1.2 Hệ thống trong chương trình Matlab :
- Development Environment: Tập hợp các cơng cụ và những tiện ích cho phép người dùng sử dụng các hàm và file Matlab. Phần lớn các cơng cụ này là giao tiếp người dùng bao gồm: Matlab Desktop và Command Window, Command History, Edit and Debugger, Workspace, trình duyệt hổ trợ sử dụng help.
- The Matlab Mathematical Function Library: Đây là thư viện tập hợp các giải thuật tính tốn được tập hợp trong các hàm từ cơ bản như: sum, sin, cosine, số phức cho đến các hàm phức tạp hơn như: nghịch đảo ma trận, trị riêng và vecto riêng của ma trận, biến đổi Fourier,...
- Lập trình trong mơi trường Matlab: Lập trình với Matlab. Matlab là ngơn ngữ lập trình cấp cao thực thi theo các đoạn lệnh, các hàm, cấu trúc dữ liệu,..cho phép xây dựng các chương trình từ đơn giản, nhỏ cho đến các chương trình lớn, phức tạp.
- Graphics: Matlab đã được mở rộng các khả năng cho việc thể hiện vector và ma trận dưới dạng đồ thị cũng như ký hiệu và in ấn chung. Matlab cung cấp các hàm nâng cao cho việc thể hiện dữ liệu hai, ba chiều, xử lý ảnh, chuyển động, đồ thị.
- The Matlab Application Program Interface (API): Đây là thư viện cho phép người dùng tạo ra những chương trình bằng ngơn ngữ C hoặc Fortran tương tác với Matlab
1.3 Toolbox bắt ảnh và xử lí ảnh :
1.3.1 Nhiệm vụ của Toolbox:
Image Acquisition Toolbox và Image processing là tật hợp các hàm của MATLAB có nhiệm vụ thu thập và xử lý hình ảnh số từ các thiết bị thu hình. Cụ thể là:
- Thu nhập hình ảnh từ các thiết bị thu hình khác nhau, từ loại chuyên dùng đến loại rẻ tiền như Webcam ( giao tiếp qua cởng USB).
- Trình chiếu (preview) luờng dữ liệu video từ thiết bị thu hình.
- Trích hình ảnh từ luờng dữ liệu video.
- Thiết lập các callback cho các sự kiện khác nhau.
- Chuyển dữ liệu hình ảnh vào khơng gian workpace của Matlab để xử lý ảnh tiếp theo.
1.3.2 Các bước thu nhập cơ bản với Toolbox:
Bước 1:
- Gắn thiết bị thu hình vào máy.
- Cài đặt driver (trình điều khiển) cho thiết bị, (được cho bởi nhà sản xuất).
- Xem thử hình ảnh video trên máy tính thơng qua phần mềm của nhà sản xuất.
- Khởi đợng matlab.
Bước 2:
- Ta cần chỉ định cho Matlab biết phần cứng nào dùng để lấy dữ liệu ( vì có thể có nhiều camera kết nới với PC).
- Gõ lệnh imaqhwinfo để biết tên các loại thiết bị có thể dùng.
- Chỉ định thiết bị: Tuỳ vào loại thiết bị (adaptor name), mỡi thiết bị cùng loại gắn vào PC được gắn đánh sớ ID, thiết bị thứ nhất có deviceID = 1, thiết bị thứ 2 có deviceID=2..
- Để liệt kê xem loại winvideo có bao nhiêu thiết bị gắn vào máy tính, ta cũng dùng lệnh imaqhwinfor với đới sớ là winvideo:
>> imaqhwinfo('winvideo')
ans =
AdaptorDllName: [1x81 char]
AdaptorDllVersion: '3.3 (R2009a)'
AdaptorName: 'winvideo'
DeviceIDs: {[1]}
DeviceInfo: [1x1 struct]
- Có mợt thiết bị với DeviceID = 1. Ta có thể tìm hiểu thêm thơng tin về thiết bị này.
>> imaqhwinfo('winvideo',1)
ans =
DefaultFormat: 'RGB24_320x240'
DeviceFileSupported: 0
DeviceName: 'USB PC Camera (SN9C120)'
DeviceID: 1
ObjectConstructor: 'videoinput('winvideo', 1)'
SupportedFormats: {1x11 cell}
Bước 3: Tạo đới tượng đại diện vào máy để làm đề tài này.
- Để tạo luồng dữ liệu video, dùng lệnh videoinput.
>> vid = videoinput('winvideo',1)
Summary of Video Input Object Using 'USB PC Camera (SN9C120)'.
Acquisition Source(s): input1 is available.
Acquisition Parameters: 'input1' is the current selected source.
10 frames per trigger using the selected source.
'RGB24_320x240' video data to be logged upon START.
Grabbing first of every 1 frame(s).
Log data to 'memory' on trigger.
Trigger Parameters: 1 'immediate' trigger(s) on START.
Status: Waiting for START.
0 frames acquired since starting.
0 frames available for GETDATA.
Bước 4: Hiện thị luờng video trên màng hình để xem thử.
- Để xem trước luồng dữ liệu video, dùng lệnh preview.
>> preview(vid)
- Màn hình lúc này hiện lên cửa sở video của đối tượng vid.
- Nếu muớn kết thúc xem, dùng lệnh stoppreview. Hoặc để đóng cửa sở preview, dùng lệnh closepreview(vid).
Bước 5: Lấy mợt khung hình ảnh và lưu thành file đờ hoạ.
- Để lấy 1 ảnh vào xử lý ta sử dụng lệnh getsnapshot.
- Để lưu ảnh thành file đờ hoạ ta dùng lệnh imwrite.
Ví dụ: hinh = getsnapshot(vid);
Imwrite(hinh,’d.jpg’);
Bước 6: Làm sạch bợ nhớ
Sau khi lấy dữ liệu hình ảnh ta có thể giải phóng bớt bợ nhớ bằng các lệnh sau:
Delete(vid)
Clear
Close(gcf)
1.3.3. Toolbox xử lý ảnh ( Image Processing Toolbox):
1.3.3.1 Loại file dữ liệu của ảnh:
- BMP ( Microsoft Windows Bitmap)
- HDF (Hierarchical Data Format).
- ICO ( Windows Icon Resources)
- JPG, JPEG( Joint Photographic Experts Group).
- PCX (Paintbrush).
- PNG(Porable Network Graphics).
- TIFF ( Tagged Image File Format).
- XWD ( X Window Dump).
1.3.3.2 Các hàm đọc và lưu ảnh:
- Axis: vẽ trục.
- Image, imshow: hiển thị ảnh.
- Imagese: sắp xếp dữ liệu và hiển thị như ảnh.
- Imread: đọc ảnh từ file đồ họa.
- Immovie: tạo phim từ loạt nhiều khuơn hình.
- Imwrite: cất ảnh vào file đồ họa.
- Imfinfo: lấy thơng tin ảnh từ file.
- Ind2rgb: đổi ảnh cĩ chỉ số sang ảnh RGB.
MatLab coi ảnh như một ma trận hai chiều, mỗi phần tử là một phần tử hình pixel, do đĩ ta cĩ thể xử lý hình như đối với ma trận, các phần tử ma trận cĩ thể là double (64 bit), uint 16 (16 bit), uint 8 (8 bit). Ảnh index được biễu diễn bởi hai ma trận, mợt ma trận dữ liệu ảnh X và mợt ma trận màu (còn gọi là bản đờ màu). Ma trận có thể là kiểu uint8, uint16, double. Ma trận màu là một ma trận kích thước m x 3 gờm các thành phần thuợc kiểu double có giá trị trong khoảng [0 1]. Mỡi hàng của ma trận xác định thành phần red, green, blue của mợt màu trong tởng m màu được sử dụng trong ảnh. Gía trị của mợt phần tử trong ma trận dữ liệu ảnh cho biết màu của điểm ảnh đó nằm ở hàng nào trong ma trận.
1.4 Các Hàm Xử Lý Ảnh Cơ Bản Trong MatLab:
Đơi khi ảnh bị mờ, khơng nét, bị nhiễu cần phải xử lý hoặc cần phải tách một chi tiết nào đĩ ra khỏi ảnh. Sau đây là một số hàm xử lý ảnh cho phép thực hiện các cơng việc này một cách dễ dàng. Chú ý là các hàm này chỉ thực hiện độc lập, cịn muốn thực hiện thời gian thực cần phải dùng các ngơn ngữ lập trình như VB, Delphi, ta cũng cĩ thể biến đổi các hàm xử lý ảnh .m ra hàm .c để giảm bớt thời gian lập trình, cịn cĩ một cách để xử lý thời gian thực là lập trình xử lý trong MATLAB, sau đĩ dùng Toolbox Com Builder biến chương trình thành COM Object rồi ghép vào các ngơn ngữ lập trình.
Đổi màu và loại ảnh:
- rgb2gray: đổi ảnh màu RGB ra ảnh cường độ xám.
- gray2ind: đổi ảnh trắng đen (gray scale) thành ảnh indexed.
- im2bw: đổi sang ảnh nhị phân.
Xử lý hình học:
- Imcrop(A), imcrop(A.rec): xén ảnh A theo hình chữ nhật định bởi con chuột hay bởi thơng số kèm theo trong hàm.
- Imresize (A, m, mothod): thay đổi kích thước ảnh A theo tỉ lệ m và theo phương pháp nội suy method.
- Imrotate (A, angle, method): quay ảnh A một gĩc angle và dùng phương pháp nội suy method.
1.4.3 Lọc nhiễu:
Các hàm lọc nhiễu dùng để tăng chất lượng ảnh. Cĩ các phương pháp lọc tuyến tính, lọc trung vị và lọc thích nghi.
- Lọc tuyến tính: pixel ảnh biến đổi là tổ hợp tuyến tính các pixel lân cận của pixel gốc, các hàm thường dùng là conv2 (tích chập), concn, filter2.
- Lọc trung vị: là loại lọc phi tuyến, gồm các hàm medfilt2, ordfilt2.
- Lọc thích nghi: wiener2.
1.4.4 Phân tích ảnh:
- Imhist (X, map): vẽ histogram của ảnh chỉ số X theo bảng màu. Cường độ ảnh từ 0 (đen) đến 255 (trắng) được chia thành n khoảng, histogram là đồ thị cho biết số pixel cĩ cường độ nằm trong khoảng tương ứng.
- Histeq: cân bằng histogram ảnh cường độ để tăng độ tương phản.
- Edge: tách biên ảnh dùng các thuật tốn Sobel, Prewitt, Canny, Laplace,…
- Qtdecomp, qtgeblk, qtsetblk: các lệnh dùng trong phân vùng ảnh quadtree.
1.4.5. Biến đổi ảnh
- Fft2: biến đổi Fourier hai chiều nhanh
- Ifft2: biến đổi ngược hai chiều nhanh
- Dct2: biến đổi cosin rời rạc hai chiều
- Idct2: biến đổi ngược cosin rời rạc
Đọc, ghi và hiển thị ảnh:
- Imread: đọc ảnh
- Imwrite: ghi ảnh.
- Imshow: hiển thị ảnh
- Imview: ảnh cho phép hiển thị ảnh trên các cửa sở riêng.
Các hàm xử lý ma trận:
- Cộng : X= A + B.
- Trừ : X= A – B.
- Nhân : X= A * B.
- Chia : X = A/B lúc đĩ X*B = A
: X = A\B lúc đĩ A*X = B
: X=A./B chia các phần tử tương ứng với nhau
- Luỹ thừa : X = A^2.
- Nghịch đảo : K = inv(A).
- Định thức : d = det(A)
1.4.8 Điều kiện if, else, elseif:
- Cú pháp của if:
if
end.
- Nếu cho kết quả đúng thì phần lệnh trong thân của if được thực hiện. Các phát biểu else và leseif cũng tương tự.
1.4.9 Điều kiện switch:
- Cú pháp của switch như sau :
switch
case n1 :
case n2 :
. . . . . . . . . . . . . . .
case nn :
otherwise :
end
1.4.10 Điều kiện while:
- Vịng lặp while dùng khi khơng biết trước số lần lặp. Cú pháp của nĩ như sau:
while
end.
Lệnh
Kết quả
a = (b>c)
a là 1 nếu b lớn hơn c. Tương tự với =,<=.
a = (b ==c)
a là 1 nếu b bằng c
a = (b ~=c)
a là 1 nếu b khơng bằng c
a = ~ b
Logic bù: a bằng 1 nếu b bằng 0
a = (b & c)
Logic AND: a là 1 nếu a = True và b = True.
a = (b | c)
Logic OR: a là 1 nếu a = True hoặc b = True.
1.5 Tạo Giao Diện Người Dùng Nhờ Cơng Cụ GUIDE.
Giao diện người dùng (graphical user interface GUI) cho phép thực hiện các lệnh trong Matlab thơng qua menu, nút nhấn.. tương tự như các ngơn ngữ Visual Basic..Lập trình GUI được thực hiện nhờ cơng cụ GUIDE (GUI Development Environnment) hoặc bằng cách soạn một file M.
1.5.1 Khởi động giao diện GUI:
- Mở phần mềm Matlab, gõ lệnh sau vào cửa số Command
>> guide
- Trong cửa sổ GUIDE Quick Start cĩ nhiều lựa chọn theo một trong các khung mẫu sau:
Hình 2.1 Cửa số GUIDE
- Create New GUI: Tạo hộp thoại GUI mới theo một trong các loại sau:
- Blank GUI (Default): Hộp thoại GUI trống khơng cĩ một điều khiển uicontrol nào cả.
- GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button, … Chương trình cĩ thể chạy ngay.
- GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị.
- Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.
- Open Existing GUI: mở một project cĩ sẵn.Trong hướng dẫn này, các bạn tạo một project mới nên sẽ chọn Blank GUI.
1.5.2 Cửa số GUI hiện ra:
Hình 2.2 Cửa số biên soạn GUI
Giao diện rất giống với các chương trình lập trình giao diện như Visual Basic, Visual C++, … Các bạn di chuyển chuột qua các biểu tượng ở bên trái sẽ thấy tên của các thanh cơng cụ điều khiển. Xin nĩi qua một vài cơng cụ điều khiển hay dùng:
- Push Button: Là một nút nhấn, giống như nút Command Button trong VB. Là các nút bấm như nút OK, Cancel mà ta vẫn bấm.
- Toggle button:Là một nút bật giống như push button nhưng cĩ hiện thị trạng thái thay đổi mỗi khi nhấn nút.
- Radio Button : Nút nhỏ hình trịn để chọn lựa.
- Check Box: Là hộp kiểm tra cho phép đưa vào các chọn lựa khi bấm chuột vào nĩ.
- Edit Text: Là hộp văn bản đưa chuỗi ký tự vào đĩ.
- Static Text: Dịng văn bản dùn để đặt nhãn, tiêu đề, hướng dẫn.
- Pop-up Menu: menu sổ xuống trình bày một bảng các chọn lựa khi nhấp chuột vào.
- List Box: Gồm một bảng các mục cĩ thể lựa chọn.
- Axes: Vẽ hệ trục.
- Slider : Thanh trượt dùng để đưa giá trị vào trong một vùng giới hạn.
- Run (Ctr + T) : nhấn vào để chạy chương trình mà ta đã viết. Cĩ lỗi là hiện ra ngày.
- Align Object: dùng để làm cho các điều khiển sắp xếp gọn đẹp theo ý mình như cùng căn lề bên trái, …
- Grid and Rulers : dùng để cấu hình về lưới trong giao diện vì nĩ sẽ coi giao diện như một ma trận các ơ vuơng nhỏ, ta sẽ thay đổi giá trị này để cho các điều khiển cĩ thể thả ở đâu tùy ý cho đẹp.
- Menu Editor : trình này để tạo menu cho điều khiển
- Tab Order Editor : sắp xếp Tab order là thứ tự khi ta nhấn phím Tab
- Gui Options : lựa chọn cho giao diện GUI.
- Các bạn save dưới tên: “ TÊN”, khi đĩ đồng thời xuất hiện cửa sổ Editor và đang mở file TÊN.m của bạn. Trong thư mục bạn save sẽ cĩ 2 file là:
- TUT01.fig : file này chứa giao diện của chương trình
- TUT01.m : file chứa các mã thực thi cho chương trình như các hàm khởi tạo, các hàm callback.
1.5.3 Thay đổi thuộc tính điều khiển:
Nhấp chuột vào component trong vùng layout để soạn tính chất của component. Ví dụ: Nhấn chuột vào Edit text, sẽ hiện ra cửa sổ Property Inspector.
- Tag: dùng để đặt tên cho component.
- BackgroundColor: màu nền của component.
- ForegroundColor: màu chữ trên component.
- FontName, fontAngle,fontSize, fontWeight: các đặt tính font chữ trên component.
- String: văn bản hiển thị trên component.
- Enable: cho phép component hoạt động hay khơng.
- Visible: hiển thị component hay khơng.
Hình 2.3 Cửa sổ thuộc tính
- Quan trọng nhất đối với các component là callback, tức là hàm con mà file áp dụng M sẽ gọi khi ta tác động vào component. Để soạn thảo callback ở cửa số layout nhấp chuột phải vào component muốn soạn thảo sau đĩ chọn View callbacks -> callback ta sẽ vào màn hình soạn thảo callback cho component đĩ. Lưu ý rằng các dịng lệnh sẽ được viết sau dịng “ function tên component_callback(hobject,eventdata, handles). Sau khi soạn thảo xong ta lưu, lập tức Matlab sẽ lưu thành hai file cĩ cùng tên nhưng khác nhau về phần mở rộng:
- File cĩ phần mở rộng.fig chứa nội dung của giao diện. File cĩ phần mở rộng.m chứa những đoạn mã liên quan đến giao diện.
Phần hai : lý thuyết xử lý ảnh
Chương I : giới thiệu hệ thống xử lý ảnh
Xử lý ảnh là một lĩnh vực mang tính khoa học và cơng nghệ. Nĩ là một ngành khoa học
mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nĩ rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nĩ.
Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay. Nĩ là
mơn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác. Đầu tiên phải kể đến Xử lý tín hiệu số là một mơn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn… Thứ hai, các cơng cụ tốn như Đại số tuyến tính, Sác xuất, thống kê. Một số kiến thứ cần thiết như Trí tuệ nhân tao, Mạng nơ ron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh.
Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và
phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân đơn đến New York từ những năm 1920. Vấn đề nâng cao chất lượng ảnh cĩ liên quan tới phân bố mức sáng và độ phân giải của ảnh. Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955. Điều này cĩ thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh sơ thuận lợi. Năm 1964, máy tính đã cĩ khả năng xử lý và nâng cao chất lượng ảnh từ mặt trăng và vệ tinh Ranger 7 của Mỹ bao gồm: làm nổi đường biên, lưu ảnh. Từ năm 1964 đến nay, các phương tiện xử lý, nâng cao chất lượng, nhận dạng ảnh phát triển khơng ngừng. Các phương pháp tri thức nhân tạo như mạng nơ ron nhân tạo, các thuật tốn xử lý hiện đại và cải tiến, các cơng cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan.
Trong mấy thập kỷ gần đây xử lý ảnh được nghiên cứu mạnh mẽ và cĩ nhiều ứng dụng thực tế. Như trong y học xử lý ảnh được dùng để phát hiện và nhận dạng khối u, cải thiện ảnh X quang, nhận dạng đường biên mạch máu từ ảnh chụp bằng tia X. Trong truyền thơng và trong nghiên cứu vũ trụ xử lý ảnh được dùng để phân tích ảnh của những hành tinh , thiên hà thu được từ tàu vũ trụ hay kính thiên văn. Đặc biệt trong Robot ngày nay khơng thể thiếu yếu tố xử lý ảnh , nhờ xử lý ảnh robot cĩ thể phát hiện và nhận dạng đối tượng ngồi mơi trường . Từ đĩ giải quyết các bài tốn tránh vật cản ,tìm đường, nhận dạng đối tượng …
Quá trình xử lý ảnh được chia làm 3 bước chính sau
-Thu nhận ảnh
-phân tích ảnh xử lý ảnh
-hiện thị ảnh và nhận dạng
2.1 thu nhận ảnh
Ả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ố hố (như loại CCD – Change Coupled Device) là loại photodiot tạo cườ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ượng một ảnh
thu nhận được phụ thuộc vào thiết bị thu, vào mơi trường (ánh sáng, phong cảnh)
2.2 phân tích và xử lý ảnh
Ở giai đoạn này ảnh được xử lý qua nhiều cơng đoạn nhỏ như lọc nhiễu , cải thiện ảnh , khơi phục ảnh để làm nổi một số đặc tính chính của ảnh hay làm cho ảnh gần với ảnh gốc , tiếp theo là phát hiện các đặc tính biên cạnh gĩc ,phân vùng.
2.3 hiển thị ảnh và nhận dạng
ảnh được xử lý xong sẽ được hiển thị. Và chuyển sang nhận dạng
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 đốn theo ý nghĩa trên cơ sở
nhận dạng. Ví dụ: một loạt chữ số và nét gạch ngang trên phong bì thư cĩ thể được nội suy thành
mã điện thoại. Cĩ nhiều cách phân loai ảnh khác nhau về ảnh. Theo lý thuyết về nhận dạng, các
mơ hình tố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 khoa họ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ạng vă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…
CHƯƠNG II : THU NHẬN ẢNH
2.1 các thiết bị thu nhận ảnh
Hai thành phần cho cơng đoạn này là linh kiện nhạy với phổ năng lượng điện từ trường, loại thứ nhất tạo tín hiệu điện ở đầu ra tỷ lệ với mức năng lượng mà bộ cảm biến (đại diện là camera); loại thứ hai là bộ số hố.
2.2 hệ tọa độ màu
a) khái niệm
Tổ chức quốc tế về chuẩn hĩa màu CIE (Commission Internationale d’Eclairage) đưa ra một số chuẩn để biểu diễn màu. Các hệ này cĩ các chuẩn riêng. Hệ chuẩn màu CIE-RGB dùng 3 màu cơ bản R, G, B và ký hiệu RGBCIE để phân biệt với các chuẩn khác. Như đã nêu trên, một màu là tổ hợp của các màu cơ bản theo một tỷ lệ nào đĩ. Như vậy, mỗi pixel ảnh màu ký hiệu Px, được viết: (T: trong cơng thức dướ đây là ký hiệu chuyển vị)
Px = [ red ,green , blue ]T
Người ta dùng hệ tọa độ ba màu R-G-B (tương ứng với hệ tọa độ x-y-z) để biểu diễn màu như sau:
Trong cách biểu diễn này ta cĩ cơng thức:
đỏ + lục + lơ =1
Cơng thức này gọi là cơng thức Maxwell. Trong hình trên, tam giác tạo bởi ba đường đứt đoạn gọi là tam giác Maxwell. Màu trắng trong hệ tọa độ này được tính bởi:
trắngCIE = (đỏCIE + lụcCIE + lơCIE) = 1
2.3 Lấy mẫu và lượng tử hĩa:
2.3.1 Lấy mẫu:
Lấy mẫu là một quá trình trong đĩ ảnh được tạo nên bởi một vùng liên tục được chuyển thành các giá trị rời rạc nguyên . Quá trình này gồm 2 bước là:
-Khoảng lấy mẫu.
-Cách thể hiện dạng lấy mẫu.
Khoảng lấy mẫu càng nhỏ thì ảnh thu được càng giống với ảnh nguyên gốc .
Dạng lấy mẫu là cách bài trí các điểm lấy mẫu trong khơng gian 2 chiều . Một số dạng lấy mẫu điểm ảnh được cho là dạng tam giác , chữ nhật , lục giác.
2.3.2 Lượng tử hĩa:
Lượng tử hĩa là ánh xạ từ các số thực mơ tả giá trị lấy mẫu thành dải các số thực , nĩi cách khác là quá trình số hĩa biên độ.
2.4 Biểu diễn ảnh:
Ảnh thường được biểu diễn bằng một số phương pháp sau đây:
Biểu diễn mã loạt dài (Run length code) .
Biểu diễn mã xích ( Chain code ).
Biểu diễn mã tứ phân (Quad tree code ).
2.4.1 Biểu diễn mã loạt dài:
Thường dùng biểu diễn ảnh nhị phân , một vùng ảnh R cĩ thể biểu diễn đơn giản nhờ một ma trận nhị phân :
u(m,n) = 1 nếu (m,n) Ỵ R
0 nếu khác
2.4.2 Biểu diễn mã xích:
Thường biểu diễn biên của ảnh . Thay vì lưu trữ tồn bộ người ta lưu trữ các dãy điểm ảnh A, B,….M .
2.4.3 Biểu diễn mã tứ phân:
Theo phương pháp này một vùng ảnh coi như bao kín một hình chữ nhật . Vùng này được chia làm 4 vùng con nếu một vùng con này gồm tồn điểm đen (1) hoặc điểm trắng (0) thì khơng cần chia tiếp ngược lại thì lại chia vùng đĩ ra làm 4 vùng nhỏ , cứ tiếp tục chia đến khi nào vùng đĩ đồng nhất chỉ gồm điểm đen hoặc điểm trắng thì thơi . Quá trình đĩ tạo thành một cây chia theo 4 phần gọi là cây tứ diện .
CHƯƠNG III: PHÂN TÍCH ẢNH
Sơ đồ tổng quát
3.1 cải thiện ảnh xử dụng các tốn tử điểm
Nâng cao chất lượng là bước cần thiết trong xử lý ảnh nhằm hồn thiện một số đặc tính của ảnh. Nâng cao chất lượng ảnh gồm hai cơng đoạn khác nhau: tăng cường ảnh và khơi phục ảnh. Tăng cường ảnh nhằm hồn thiện các đặc tính của ảnh như :
- Lọc nhiễu, hay làm trơn ảnh,
- Tăng độ tương phản, điều chỉnh mức xám của ảnh,
- Làm nổi biên ảnh.
Khái niệm về tốn tử điểm:
Xử lý điểm ảnh thực chất là biến đổi giá trị một điểm ảnh dựa vào giá trị của chính nĩ mà khơng hề dựa vào các điểm ảnh khác. Cĩ hai cách tiệm cận với phương pháp này. Cách thứ nhất dùng một hàm biến đổi thích hợp với mục đích hoặc yêu cầu đặt ra để biến đổi giá trị mức xám của điểm ảnh sang một giá trị mức xám khác. Cách thứ hai là dùng lược đồ mức xám (GrayHistogram). Về mặt tốn học, tốn tử điểm là một ánh xạ từ giá trị cường độ ánh sáng u(m, n) tại toạ độ (m, n) sang giá tri cường độ ánh sáng khác v(m, n) thơng qua hàm f(.), tức là:
v(m,n) = f(u(m,n)) (3-1)
Nĩi một cách khác, tốn tử điểm là tốn tử khơng bộ nhớ, ở đĩ một mức xác u ∈ [ 0 , N ]
được ánh xạ sang một mức xám v ∈ [ 0 , N ] : v = f ( u ) . Ứng dụng chính của các tốn tử điểm là biến đổi độ tương phản của ảnh. Ánh xạ f khác nhau tùy theo các ứng dụng. Các dạng tốn tử điểm được giới thiệu cụ thể như sau:
Tăng độ tương phản.
Các cấp độ α ,β ,γ xác định độ tương phản tương đối. L là số mức xám cực đại.
Tách nhiễu và phân ngưỡng
Trong đĩ a = b = t gọi là phân ngưỡng
Biến đổi âm bản.
f (u) = L − u tạo âm bản
4) Cắt theo mức
5)Trích chọn bit.
3.1.1 Khái niệm pixel và pixel lân cận :
Pixel là phần tử nhỏ nhất của ảnh cấu tạo nên ảnh . Mỗi pixel cĩ tọa độ p(x,y) và cĩ màu xác định.
P1(x-1,y-1)
P2(x-1,y)
P3(x-1,y+1)
P4(x,y-1)
P6(x+1y-1)
P(x,y)
P5(x,y+1)
P8(x+1,y+1)
P7(x+1,y)
Hình minh họa :Pixel P và các lân cận của P
Một pixel P(x,y) cĩ 4 pixel lân cận theo chiều dọc và chiều ngang là P2(x-1,y) ; P4(x,y-1) ; P5(x,y+1) ; P7(x+1,y); chúng ký hiệu là N4(p).
Ngồi 4 pixel này cịn 4 pixel lân cận chéo gĩc là P1(x-1,y-1) ; P3(x-1,y+1) ; P6(x+1,y-1) ; P8(x+1,y+1) ; chúng ký hiệu là ND(p)
Tập 8 pixel trên tạo thành lân cận của P(x,y) ký hiệu là N8(p).
3.1.2 Một số cơng cụ trợ giúp xử lý ảnh:
3.2.1 Tích chập:
Tốn tử chập được định nghĩa như sau:
+ trường liên tục
g(x,y) = h(x,y) Ä f(x,y) =
+ trường rời rạc
y(m,n) = h(m,n) Ä x(m,n) =
3.1.3 Kỹ thuật lọc số:
Chất lượng hình ảnh kém do nhiều nguyên nhân gây ra như do nhiễu điện tử của máy thu hoặc do chất lượng bộ số hĩa kém . Phần này tìm hiểu về các bộ lọc được dùng trong xử lý ảnh để khắc phục sự nhiễu của ảnh thu được.
Cĩ nhiều bộ lọc được thiết kế để xử lý ảnh nhiễu nhưng do giới hạn của đồ án mơn học nên phần này khơng được giới thiệu ở đây.
3.1.4 Trừ ảnh
Trừ ảnh được dùng đẻ tách nhiễu khỏi nền. Người ta quan sát ảnh ở 2 thời điểm khác nhau,
so sánh chúng để tìm ra sự khác nhau. Người ta dĩng thẳng 2 ảnh rồi trừ đi và thu được ảnh mới.
Ảnh mới này chính là sự khác nhau. Kỹ thuật này hay được dùng trong dự báo thừoi tiết, trong y
học.
3.1.5 Nén dải độ sáng.
Đơi khi do dải động của ảnh lớn, việc quan sát ảnh khơng thuận tiện. Cần phải thu nhỏ dải
độ sáng lại mà ta gọi là nén giải độ sáng. Người ta dùng phép biến đổi logarit sau:
v(m,n) = c log10(δ + u(m,n))
với c là hằng số tỉ lệ. δ được coi là nhỏ so với u(m, n). Thường δ được chọn trong khoảng 3-10.
3.1.6 Mơ hình hĩa và biến đổi lược đồ xám
Về ý nghĩa của lược đồ xám và một số phép biến đổi lược đồ đã được trình bày trong tài liệu
này. Xét đến một số biến đổi hay dùng sau:
trong đĩ, h(xi) là lược đồ mức xám xi.
Ngồi các biến đổi trên, người ta cịn dùng một số biến đổi khác. Trong các biến đổi này,
mức xám đầu vào u, trước tiên được biến đổi phi tuyến bởi một trong các hàm sau:
Sau các biến đổi đĩ, đầu ra được lượng hố đều. Ba phép biến đổi này được dùng trong
lượng hĩa ảnh. Nĩi chung, các biến đổi lược đồ nhằm biến đổi lược đồ từ một đường khơng thuần
nhất sang đồng nhất để tiện cho phân tích ảnh.
3.2 CẢI THIỆN ẢNH DÙNG TỐN TỬ KHƠNG GIAN
Để làm trơn nhiễu hay tách nhiễu, người ta sử dụng các
bộ lọc tuyến tính (lọc trung bình, thơng thấp) hay lọc phi tuyến (trung vị, giả trung vị, lọc đồng
hình). Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở lý thuyết lọc là: bộ lọc
chỉ cho tín hiệu cĩ tần số nào đĩ thơng qua do đĩ, để lọc nhiễu người ta thường dùng lọc thơng
thấp (theo quan điểm tần số khơng gian) hay lấy tổ hợp tuyến tính để san bằng (lọc trung bình).
Để làm nổi cạnh (ứng với tần số cao), người ta dùng các bộ lọc thơng cao, lọc Laplace.
Trước khi xem xét chi tiết các kỹ thuật áp dụng, cần phân biệt các loại nhiễu hay can thiệp
trong quá trình xử lý ảnh. Trên thực tế tồn tại nhiều loại nhiễu; tuy nhiên người ta thường xem xét 3 loại nhiễu chính : nhiễu cộng, nhiễu nhân và nhiễu xung:
• Nhiễu cộng
Nhiễu cộng thường phân bố khắp ảnh. Nếu gọi ảnh quan sát (ảnh thu được) là Xqs, ảnh gốc
là Xgốc, nhiễu là η, ảnh thu được cĩ thể biểu diễn bởi:
Xqs = Xgốc + η
• Nhiễu nhân
Nhiễu nhân thường phân bố khắp ảnh và ảnh thu được sẽ biểu diễn với cơng thức:
Xqs = Xgốc * η
• Nhiễu xung
Nhiễu xung thường gây đột biến tại một số điểm ảnh.
3.2.1 Làm trơn nhiễu bằng lọc tuyến tính: lọc trung bình và lọc dải thơng thấp
Do cĩ nhiều loại nhiễu can thiệp vào quá trình xử lý ảnh nên cần cĩ nhiều bộ lọc thích hợp.
Với nhiễu cộng và nhiễu nhân ta dùng các bộ lọc thơng thấp, trung bình và lọc đồng hình
(Homomorphie); với nhiễu xung ta dùng lọc trung bị, giả trung vị, lọc ngồi (Outlier).
a. Lọc trung bình khơng gian
b. Lọc thơng thấp
c. Lọc đồng hình hình (Homomorphie Filter)
3.2.2 Làm trơn nhiễu bằng lọc phi tuyến
Các bộ lọc phi tuyến cũng hay được dùng trong kỹ thuật tăng cường ảnh. Trong kỹ thuật
này, người ta dùng bộ lọc trung vị, giả trung vị, lọc ngồi. Với lọc trung vị, điểm ảnh đầu vào sẽ
được thay thế bởi trung vị các điểm ảnh cịn lọc giả trung vị sẽ dùng trung bình cộng của 2 giá trị
“trung vị” (trung bình cộng của max và min).
Lọc trung vị
Lọc ngồi (Outlier Filter)
3.2.3 Mặt nạ gờ sai phân và làm nhẵn
Mặt nạ gờ sai phân dùng khá phổ biến trong cơng nghệ in ảnh để làm đẹp ảnh. Với kỹ thuật
này, tín hiệu đầu ra thu được bằng tín hiệu ra của bộ lọc gradient hay lọc dải cao bổ sung thêm
đầu vào:
v(m,n) = u(m,n) + λg(m,n) (-28)
với λ>0, g(m, n) là gradient tại điểm (m, n). Hàm gradient dùng là hàm Laplace.
G(m,n) = u(m,n) – {u(m-1,n) + u(m+1,n) + u(m,n+1)}/2
Đây chính là mặt nạ chữ thập.
3.2.4. Lọc thơng thấp, thơng cao và lọc dải thơng
Tốn tử trung bình khơng gian là lọc thơng thấp. Nếu hLP(m, n) biểu diễn bộ lọc thơng thấp
FIR (Finite Impulse Response) thì bộ lọc thơng cao hHP(m, n) cĩ thể được định nghĩa:
hHP(m, n) = δ(m, n) - hLP(m, n)
Như vậy, bộ lọc thơng cao cĩ thể cài đặt một cách đơn giản như trên hình 3.6
Bộ lọc dải thơng cĩ thể định nghĩa như sau:
HHP(m, n)= hL1(m, n) – hL2(m, n)
với hL1 và hL2 là các bộ lọc thơng thấp.
3.2.5. Một số kỹ thuật cải thiện ảnh nhị phân
Với ảnh nhị phân, mức xám chỉ cĩ 2 giá trị là 0 hay 1, Do vậy, ta xét một phần tử ảnh như
một phần tử logic và cĩ thể áp dụng các tốn tử hình học dựa trên khái niệm biến đổi hình học của
một ảnh bởi một phần tử cấu trúc.
Phần tử cấu trúc là một mặt nạ dạng bất kỳ mà các phần tử của nĩ tạo nên một mơ-típ.
Người ta tiến hành rê mặt nạ đi khắp ảnh và tính giá trị điểm ảnh bởi các điểm lân cận với mơ-típ
của mặt nạ theo cách lấy hội hay lấy tuyển.
Dựa vào nguyên tắc trên, người ta sử dụng 2 kỹ thuật: dãn ảnh (Dilatation) và co ảnh
(Erosion).
a) dãn ảnh
b) Co ảnh
Co ảnh là thao tác đối ngẫu của dãn ảnh nhằm loại bỏ điểm trắng bị vây bởi các điểm đen.
Trong kỹ thuật này, một cửa sổ (N+1)2 được rê đi khắp ảnh và thực hệin so sánh một pixel của
ảnh với (N+1)2-1 điểm lân cận. Việc so sánh ở đây thực hiện bởi phép hội logic
3.3 KHƠI PHỤC ẢNH
Khái niệm: Khơi phục ảnh là phục hồi lại ảnh gốc so với ảnh ghi được đã bị biến dạng. Nĩi
cách khác, khơi phục ảnh là các kỹ thuật cải thiện chất lượng những ảnh ghi đảm bảo gần được
như ảnh thật khi ảnh bị méo.
Để khơi phục được ảnh cĩ kết quả, điều cần thiết là phải biết được các nguyên nhân, các
hàm (hay dạng) gây ra biến dạng ảnh. Các nguyên nhân biến dạng thương do:
• Do camera, đầu thu ảnh chất lượng kém.
• Do mơi trường, ánh sáng, hiện trường (scene), khí quyển, nhiễu xung.
• Do chất lượng.
Các nguồn biến dạng:
Về mặt phương pháp, các nguồn tạo biến dạng cĩ thể nhĩm lại theo các xử lý như sau:
- Biến dạng điểm.
- Biến dạng khơng gian
- Biến dạng thường (Temporal)
- Biến dạng màu sắc (Chromatic)
Do quá trình tạo ảnh ghi được liên quan đến điểm ảnh xung quanh, chúng ta tập trung xét
các biến dạng trong khơng gian. Một số ví dụ điển hình của biến dạng khơng gian được xem xét
như sau
• Nhiễu loạn của khí quyển (thiên văn) giữa các ống kính thu và đối tượng trong quá trình
chụp ảnh. Do sai số hệ thống (hệ phi tuyến).
• Sai lệch hệ thống cĩ thể biểu diễn bằng sai lệch hàm truyền (ví dụ: sự dịch pha hàm
truyền cohenent trong quang học…)
Các kỹ thuật khơi phục ảnh:
• Mơ hình khơi phục ảnh cĩ: mơ hình tạo ảnh, mơ hình gây nhiễu, mơ hình quan sát.
• Lọc tuyến tính cĩ: lọc ngược, đáp ứng xung, lọc hữu hạn FIR.
• Các kỹ thuật khác: Entropy cực đại, mơ hình Bayes, giải chập.
3.3.1. Các mơ hình quan sát và tạo ảnh
Mơ hình quan sát ảnh.
Đầu tiên, cần xem xét ảnh được hình thành như thế nào; sau đĩ biến đổi ngược (thực hiện
lọc ngược) khử nhiễu để thu lại ảnh nguyên thủy.
Từ phương trình biến đổi tín hiệu ảnh cĩ nhiễu, chúng ta cĩ thể viết:
Nhiễu η (m,n) cĩ thể gồm hai phần: nhiễu tích η1 ( m ,n) , nhiễu cộng ( . ) η2 ( m ,n) đều được giả thiết là nhiễu trắng Gauss độc lập tương hỗ với trung bình 0:
trong đĩ: các hàm g(.), f(.) là các biến đổi (nĩi chung là phi tuyến) đặc trưng cho quá trình phát hiện và lưu trữ ảnh. Từ (3-40) mơ hình đĩ được biễu diễn theo hình khối như sau:
3.3.2 Các bộ lọc
a) Kỹ thuật lọc ngược (Inverse Filter)
Việc thiết kế bộ lọc ngược khá khĩ khăn, do vậy chuyển sang biến đổi Fourier 2 vế
Chú ý rằng :
b) Khơi phục ảnh bằng phương pháp bình phương tối thiểu.
Mơ hình nhiễu cĩ thể viết lại theo dạng véc tơ và ma trận như sau:
trong đĩ: u, v , η là các véc tơ ảnh thật, véc tơ ảnh ghi được, véc tơ nhiễu tương ứng; H là ma
trận hàm truyền của hệ thống.
3.4. Phát hiện biên:
3.4.1 Khái niệm:
-Điểm biên : Một điểm ảnh được coi là điểm biên nếu cĩ sự thay đổi nhanh hoặc đột ngột về mức xám.
- Đường biên : Là tập hợp liên tiếp của các điểm biên tạo thành một đường bao
3.4.2 Các phương pháp phát hiện biên ảnh:
ảnh gốc
- Phương pháp phát hiện trực tiếp : dựa chủ yếu vào sự biến thiên độ sáng của điểm ảnh để làm nổi biên bằng cách lấy đạo hàm
+ Lấy đạo hàm bậc nhất ta cĩ phương pháp Gradient
+ Lấy đạo hàm bậc hai cĩ phương pháp Laplace
Cả 2 phương pháp này gọi chung là phương pháp dị biên cục bộ
- Phương pháp phát hiện gián tiếp : Bằng cách nào đấy chúng ta thu được các vùng ảnh khác nhau thì đường phân cách các vùng ảnh chính là biên . Phương pháp này khĩ thực hiện nhưng cho kết quả tốt khi sự biến thiên mức xám nhỏ
CHƯƠNG IV : NHẬN DẠNG ẢNH
4.1 Giới thiệu:
Nhận dạng là giai đoạn cuối của hệ thống xử lý ảnh . Nhận dạng dựa trên lý thuyết về nhận dạng , lý thuyết này và lý thuyết về nhận dạng ảnh nĩi riêng đề cập đến 3 phương pháp nhận dạng chính:
Nhận dạng dựa vào phân hoạch khơng gian
Nhận dạng dựa vào cấu trúc
Nhận dạng dựa vào mạng nơron
Khái niệm về nhận dạng: Nhận dạng là quá trình phân loại đối tượng được biểu diễn theo một mơ hình nào đĩ và gán cho chúng một tên dựa theo quy luật và mẫu chuẩn
Bản chất của quá trình nhận dạng gồm 3 giai đoạn chính:
Lựa chọn mơ hình biểu diễn đối tượng
Chọn ra luật quyết định ( phương pháp nhận dạng ) và suy diễn
Học nhận dạng
4.2 Mạng nơron:
Mạng nơron nhân tạo được thiết kế dựa trên mơ hình mạng nơron thần kinh với các mơ hình nơron nhân tạo là mơ phỏng nơron thần kinh.
Mơ hình của một mạng nơron nhân tạo gồm 3 phần chính : bộ tổng kết đầu vào , bộ học tuyến tính và bộ phi tuyến .
Bộ tổng liên kết đầu vào: Là bộ tổng hợp các liên kết tại đầu vào của một phần tử nơron, mơ tả như sau:
Trong đĩ:
v(t): Tổng tất cả các đầu vào mơ tả tồn bộ thế năng tác động ở thân nơron .
xk(t): Các đầu vào ngồi; với k là chỉ số chạy, k=1,2…m.
m: Số lượng đầu vào mơ tả tín hiệu vào từ các đầu nhạy thần kinh hoặc các nơron khác.
wk: Trọng liên kết ngồi giữa các đầu vào k tới nơron hiện tại.
y(t): Tín hiệu đầu ra nơron .
θ: Ngưỡng (là hằng số), xác định ngưỡng kích thích hay ức chế.
Bộ động học tuyến tính: Đầu vào của phần động học tuyến tính là v(t), đầu ra của nĩ là u(t) gọi là đầu ra tương tự. Hàm truyền tương ứng của phần động học tuyến tính cĩ thể mơ tả dưới dạng:
U(s) = H(s)V(s)
Bộ phi tuyến: Phần này sử dụng hàm quan hệ phi tuyến f(.) cho đầu ra y, để chặn tính hiệu ở đầu ra. Các hàm đầu ra thơng thường là các hàm cĩ giới hạn ngưỡng phù hợp với đặc điểm đầu
Phân loại mạng nơron:
Cĩ nhiều cách để phân loại mạng nơron nhân tạo, tùy theo tiêu chí đề ra:
- Dựa vào số lượng lớp cĩ trong mạng, ta phân thành:
+ Mạng một lớp
+ Mạng nhiều lớp
- Dựa vào đường truyền tín hiệu trong mạng, ta phân thành:
+ Mạng truyền thẳng
+ Mạng phản hồi
+ Mạng tự tổ chức
Khái quát luật học trong mạng nơron
Khái niệm học trong mạng nơron được hiểu theo hai nghĩa: Học về cấu trúc và học về tham số.
Học tham số (Parameter Learning)
Mục tiêu của việc học tham số là thay đổi, cập nhật các trọng liên kết. Hầu hết các luật học tồn tại thuộc kiểu học tham số. Thơng thường, luật học tham số được chia thành ba dạng chính, đĩ là: Học giám sát, học khơng giám sát và học củng cố
Phần ba : thiết kế phần mềm
Thiết kế trên phần mềm matlab
Chương trình minh họa
Sơ đồ nhận dạng số
Thu nhận ảnh
Chyển sang ảnh nhị phân
Cắt ảnh
Nhận dạng
Hiện thị kết quả
Trong các bước trên thì quá trình chuyển ảnh sang ảnh nhị phân quyết định độ chính xác của quá trình nhận dạng ảnh . Do nhiễu của mơi trường (ánh sáng) và nhiễu của thiết bị thu nên sau khi nhị phân hĩa ảnh thơng thường thì quá trình nhận dạng đạt độ chính xác khơng cao. Vì vậy để tăng độ chính xác khi nhận dạng trước khi nhị phân hĩa ảnh cần xử lý mức xám để tăng độ rõ nét của ảnh nhị phân.
Sau đây là chương trình minh họa:
function varargout = xulyanh(varargin)
% XULYANH M-file for xulyanh.fig
% XULYANH, by itself, creates a new XULYANH or raises the existing
% singleton*.
%
% H = XULYANH returns the handle to a new XULYANH or the handle to
% the existing singleton*.
%
% XULYANH('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in XULYANH.M with the given input arguments.
%
% XULYANH('Property','Value',...) creates a new XULYANH or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before xulyanh_OpeningFunction gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to xulyanh_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help xulyanh
% Last Modified by GUIDE v2.5 21-Apr-2009 15:44:39
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @xulyanh_OpeningFcn, ...
'gui_OutputFcn', @xulyanh_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before xulyanh is made visible.
function xulyanh_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to xulyanh (see VARARGIN)
load mydata;
assignin('base','net',net);
% Choose default command line output for xulyanh
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
%*****************Phan nay thiet ke giao dien cua chuong trinh************
set(handles.edit3,'string',datestr(clock),'FontSize',16,'FontWeight','bold','ForegroundColor',[1 0 0]);
% UIWAIT makes xulyanh wait for user response (see UIRESUME)
% uiwait(handles.figure1);
set(handles.edit1,'string','net');
set(handles.edit2,'string','');
set(handles.text1,'string','So nhan dang duoc la:','foregroundcolor',[1 0 0],...
'backgroundcolor',[0 1 0.5],'fontsize',16,'fontweight','bold');
set(handles.pushbutton1,'string','START','Fontsize',16,'fontweight','bold',...
'foregroundcolor',[1 0 0]);
set(handles.pushbutton2,'string','EXIT','fontsize',16,'fontweight','bold',...
'foregroundcolor',[1 0 0]);
set(handles.uipanel1,'title','Control','fontsize',12,'fontweight','bold');
set(handles.edit2,'fontsize',80,'fontweight','bold','foregroundcolor',[1 0 0]);
% --- Outputs from this function are returned to the command line.
function varargout = xulyanh_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
set(handles.edit3,'string',datestr(clock),'FontSize',16,'FontWeight','bold','ForegroundColor',[1 0 0]);
vid=videoinput('winvideo',1); %tao webcam
set(vid, 'FramesPerTrigger', 8); %so frame thu nhan la 8 giam nhieu
preview(vid);
pause(0.5);
start(vid); %thu anh
wait(vid); %doi thu anh xong
number=vid.FramesAvailable;
[frames,time]=getdata(vid,number);%luu anh vao bien frames
stop(vid);
delete(vid);
clear vid; %xoa webcam
disp(time);
imwrite(frames(:,:,:,6),'data_image.jpg','jpg');%luu anh
so=imread('data_image.jpg'); %doc anh
axes(handles.axes1);
imshow(so),title('original image');%hien thi anh goc tren axes1
level=graythresh(so);%lay nguong
%imview(so);
disp(level);
%cai thien muc xam tang do ro cua anh nhi phan
for i=20:200
for j=50:270
if ((so(i,j,1)<125)|(so(i,j,2)<125)|(so(i,j,3)<125))
so(i,j,:)=0;%giam muc xam cua pixel co muc xam <75 xuong 0
else
so(i,j,:)=250;%tang muc xam cua pixel co muc xam >75 len 250
end
end
end
imview(so);
bw = im2bw(so(20:200,50:270),level);%chuyen anh nhi phan
axes(handles.axes2);
imshow(bw);title('binary image');%hien thi anh nhi phan tren axes2
bw2 = cat_anh(bw); %cat anh
axes(handles.axes3);
imshow(bw2);title('anh sau khi cat');%hien thi
charvec = hoc_image(bw2);%chuyen anh ve dinh dang [70 50]
axes(handles.axes4);
plotchar(charvec);title('Neural Network of num');
selected_net = get(handles.edit1,'string'); %tao mang network tu edit1
selected_net = evalin('base',selected_net); %nhan dang
result = sim(selected_net,charvec);%lay ket qua
[value, num] = max(result);
set(handles.edit2, 'string',num);%hien thi
set(handles.edit3,'string',datestr(clock),'FontSize',16,'FontWeight','bold','ForegroundColor',[1 0 0]);
guidata(hObject, handles);
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
beep;
beep;
exit=questdlg('Do you want to exit now?','EXIT','Yes','No','No');
switch exit
case 'Yes'
h=waitbar(0,'Please wait ...','Name','Please wait...');
for t=0:5000
dem=t/50;
waitbar(t/5000,h,num2str(dem));
end
close(xulyanh);
close(h);
close all;
case 'No'
return;
end
function edit1_Callback(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
% str2double(get(hObject,'String')) returns contents of edit1 as a double
% --- Executes during object creation, after setting all properties.
function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit2_Callback(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit2 as text
% str2double(get(hObject,'String')) returns contents of edit2 as a double
% --- Executes during object creation, after setting all properties.
function edit2_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
function edit3_Callback(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit3 as text
% str2double(get(hObject,'String')) returns contents of edit3 as a double
% --- Executes during object creation, after setting all properties.
function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
Kết luận
- Mạch chạy và hoạt động đúng nhưng khả năng chính xác khoảng định 80% do thuật tốn khơng hiệu quả tối đa.
- Ta cĩ thể gắn hệ thống của mạch vào vị trí muốn cảnh báo người qua lại, hay muốn xác định người nào cĩ quyền ra vào một nơi. Cũng cĩ thể giám sát ở ngân hàng, cơ quan nhà nước hay nơi quân sự.
- Ta cũng cĩ thể triển khai mạch này trong nhiều mục đích khác như: dùng trong thiết bị chống trộm, mạch gác cửa tại khu quân sự, chính trị.
- Với đề tài trên ta cĩ thể phát triển để nhận dạng thí sinh vào phịng thi, nhận dạng chứng minh nhân dân….
Phần cứng của nhận dạng số gồm:
-Webcam kết nối với cổng usb.
- Bảng các chữ số từ 0 đến 9.
Phần mềm : Để thực hiện nhận dạng các chữ số sử dụng cơng cụ tích hợp trong matlab để thực hiện .
Do mơn xử lý ảnh là mơn khĩ ít người làm thực tế ở Việt Nam vì vậy đồ án khơng thể tránh khỏi sai xĩt , đặc biệt quá trình nhận dạng hay bị nhiễu bởi mơi trường do đĩ độ chính xác chưa cao .
TÀI LIỆU THAM KHẢO
1. MatLab căn bản _ Nguyễn Hồi Sơn. ĐHSPKT.
2. Xử lý ảnh và Video số _ Nguyễn Kim Sách. NXBKHKT 1997.
3. Image Processing Toolbox của Matlab Version 6.5
4. Xử lý đa chiều _ Phạm Thế Bảo. ĐH BK TP HCM.
5. www.haiphongit.com
6. www.dientuvietnam.com
7. www.ebook.com
8.www.mathworks.com
Các file đính kèm theo tài liệu này:
- 2727890 N C7842M BI7870N.doc