Robot chơi cờ tướng

117 498 6
Robot chơi cờ tướng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Robot chơi cờ tướng

CHƢƠNG 1: TỔNG QUAN ĐỀ TÀI 1 1.1 Đặt vấn đề 1 1.2 Sơ lƣợc về thị giác máy tính 1 1.3 Lịch sử các thuật toán và Robot chơi cờ 8 1.4 Nhiệm vụ của luận văn 11 1.5 Sơ đồ khối của hệ thống 12 CHƢƠNG 2: GIỚI THIỆU SƠ L Ƣ ỢC ĐỘNG CƠ B Ƣ ỚC VÀ ĐỘNG CƠ DC 13 2.1 Cấu tạo và nguyên lý hoạt động của động cơ bƣớc 13 2.2 Các loại động cơ b ƣ ớc 14 2.3 Các mạch điều khiển cơ bản 17 2.4 Các phƣơng pháp điều khiển động cơ b ƣ ớc 19 CHƢƠNG 3: HỌ VI ĐIỀU KHIỂN PIC VÀ VI ĐIỀU KHIỂN PIC18F67J60 23 3.1 Giới thiệu chung về họ PIC 23 3.2 Giới thiệu về vi điều khiển PIC18F67J60 27 CHƢƠNG 4: XÂY DỰNG THUẬT TOÁN CHƠI CỜ 44 4.1 Dạng trò chơi 44 4.2 Cây trò chơi 45 4.3 Vét cạn 45 4.4 Chiến lƣợc tìm kiếm trong trò chơi 47 4.5 Thủ tục minimax 48 4.6 Thủ tục Alpha-Beta: 51 4.7 Thuật toán khai cuộc(Openning book) và tàn cuộc(Endgame database) 54 CHƢƠNG 5: XỬ LÝ ẢNH VỚI OPENCV 55 5.1 Tổng quan về thƣ viện OpenCV 55 5.2 OpenCV trên HĐH Ubuntu 58 5.3 Các vấn đề cơ bản trong xử lý ảnh 64 5.4 Thuật toán sử dụng trong luận văn: Biến đổi Hough 69 CHƢƠNG 6: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH PHẦN CỨNG 76 6.1 Giới thiệu về Robot 76 6.2 Yêu cầu và ý t ƣ ởng 83 6.3 Thiết kế Robot 86 6.4 Thiết kế bàn cờ và quân cờ 90 6.5 Mô hình sau khi thực hiện 93 MỤC LỤC GVHD: TS. Nguyễn Đức Thành CHƢƠNG 7: GIẢI THUẬT CHƢƠNG TRÌNH 96 7.1 Lƣu đồ giải thuật 96 7.2 Phƣơng pháp điều khiển cánh tay Robot Scara 97 7.3 Thuật toán xử lý ảnh nhận dạng nƣớc đi 99 7.4 Chƣơng trình chơi cờ ứng dụng trí tuệ nhân tạo 102 CHƢƠNG 8: KẾT QUẢ ĐẠT ĐƢỢC VÀ HƢỚNG PHÁT TRIỂN ĐỀ TÀI 112 8.1 Hình ảnh và kết quả đạt đƣợc 112 8.2 Hạn chế của đề tài và h ƣ ớng phát triển 115 GVHD: TS. Nguyễn Đức Thành 1.1 Đặt vấn đề CHƢƠNG 1: TỔNG QUAN ĐỀ TÀI Thị giác máy là một lĩnh vực đã và đang phát triển mạnh mẽ trên thế giới hiện nay. Khái niệm về thị giác máy – Computer Vision có liên quan tới nhiều ngành học và có nhiều hƣớng nghiên cứu khác nhau. Kể từ những năm 70 của thế kỷ 20 khi mà khả năng tính toán của các máy tính trở nên mạnh mẽ, nó có thể giải quyết đƣợc những công việc cần tới tốc độ cao nhƣ xử lý các tập ảnh hay các đoạn video thì thị giác máy đƣợc nhắc đến, nghiên cứu và phát triển cho đến ngày nay. Trong thị giác máy tính, lĩnh vực phát hiện và nhận dạng đóng một vai trò cốt yếu với rất nhiều ứng dụng trong hầu hết các lĩnh vực hiện đại nhƣ thám hiểm không gian, quân sự, y tế, giải trí … Với sự kết hợp thị giác máy tính với trí tuệ nhân tạo, các cỗ máy tự động (robot) do con ngƣời chế tạo ra ngày càng thông minh và giống con ngƣời hơn. Từ tình hình thực tế đó, đề tài luận văn “Robot chơi cờ tƣớng” của em ra đời, đƣợc ứng dụng xử lý ảnh nhằm mục đích kiểm nghiệm lại những kiến thức đã học ở trƣờng và qua đó nghiên cứu thêm những lĩnh vực mới, những thử thách mới trên con đƣờng khoa học ngày càng phát triển. Xử lý ảnh và trí tuệ nhân tạo là những lĩnh vực rất mới của thế giới, với những kiến thức và thuật toán đƣợc phát triển mỗi ngày. Do thời gian thực hiện luận văn chỉ gói gọn trọng một học kỳ và những kiến thức của bản thân cũng hạn chế, nên những thiếu sót là không thể tránh khỏi. Em rất mong nhận đƣợc những góp ý của quí thầy cô và các bạn. 1.2 Sơ lƣợc về thị giác máy tính 1.2.1 Khái niệm cơ bản Thị giác máy bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục đích tạo ra một hệ thống nhân tạo có thể nhận thông tin từ các hình ảnh thu đƣợc hoặc các tập dữ liệu đa chiều. 3 CHƢƠNG 1: TỔNG QUAN ĐỀ TÀI Máy móc càng ngày càng thông minh, nó không chỉ thay con ngƣời làm những công việc nặng nhọc và nhàm chán mà nó còn có một số khả năng bắt ch ƣ ớc động vật và con ng ƣ ời. Một trong số những khả năng đó là nhận biết đƣợc thế giới qua “mắt” của nó. Bằng việc kết hợp với các mô hình khác nữa nhƣ máy học, mạng nơron… giúp cho chúng dần tiến tới một hệ thống nhân tạo có những quyết định linh hoạt và chính xác hơn. Hình 1.1: Tƣơng tác giữa thị giác máy tính và các lĩnh vực khác Lĩnh vực nghiên cứu của thị giác máy tính rất rộng, và đặc điểm chung là các bài toán về thị giác máy tính đều không có một đề bài chung và cách giải quyết duy nhất. Mỗi giải pháp giải quyết một vấn đề và thu đƣợc một kết quả nhất định cho những trƣờng hợp cụ thể. Thị giác máy tính bao gồm: o Nhận dạng (recognition) : Nhận dạng ảnh là một trong những vấn đề kinh điển trong lĩnh vực thị giác máy và xử lý ảnh. Mục đích của nhận dạng ảnh tức là xác định xem liệu một bức ảnh có tồn tại những đối tƣợng, đặc điểm đặc biệt hay không. Chức năng này có thể thực hiện tự động, không cần sự tác động của con ng ƣ ời; tuy nhiên nó không đảm bảo trong các trƣờng hợp chung, với những đối tƣợng tuỳ ý và trong tình huống tuỳ ý.  Nhận dạng vật thể (nhận dạng biển báo giao thông, đ ƣ ờng biên xe chạy…).  Phân biệt vật thể ( phân biệt khuôn mặt, dấu vân tay, chữ viết …).  Phát hiện vật thể ( phát hiện xe cộ, vật lạ …). Hình 1.2: Ứng dụng thị giác máy tính trong nhận dạng khuôn mặt o Phân tích chuyển động (motion tracking): Nhận dạng chuyển động đƣợc áp dụng để sử lý một chuỗi các ảnh liên tiếp để ƣớc lƣợng tốc độ chuyển động của từng điểm ảnh.  Egomotion: Xác định chuyển động trong khung cảnh 3D từ camera. Áp dụng cho các camera theo dõi tự động.  Tracking: Theo dõi chuyển động của một đối tƣợng nào đó, ví dụ nhƣ ngƣời hay xe cộ. Hình 1.3: Ứng dụng thị giác máy tính trong theo dõi chuyển động o Xây dựng cảnh (scene reconstruction): Đây là chức năng cho phép xây dựng và mô phỏng lại một khung cảnh 3D từ những bức ảnh hoặc một đọan phim cho trƣớc. Hình 1.4: Ứng dụng thị giác máy tính trong mô phỏng lại cấu trúc không gian o Phục hồi ảnh(image restoration): Lọai bỏ tác động của nhiễu trong ảnh, khôi phục lại hình ảnh ban đầu. 1.2.2 Lịch sử phát triển Năm 1955, Selfridge lần đầu tiên đƣa ra khái niệm thị giác máy tính( eyes and ears for the computer ). Những năm đầu tiên đó, thị giác máy tính phát triển ngày càng nhanh, và đạt đƣợc nhiều thành tựu. Năm 1965, Roberts đạt thành tựu trong việc phát hiện ra các góc cạnh trong những hình khối đơn giản và chuyển sang dạng hình học không gian. Sau đó hơn 1 thập kỷ, năm 1978, Hanson và Riseman đã có thể nhận dạng các đƣờng thẳng một cách hoàn chỉnh. Công nghệ thị giác máy tính tiến một bƣớc dài trong việc kết hợp với lĩnh vực trí tuệ nhân tạo (Artificial Intelligence). Năm 1979, Nagel bƣớc đầu thành công trong việc phân tích hình ảnh giao thông, đây là cơ sở cho bộ phận trợ lý ảo (Visual driver assistance) đƣợc lắp đặt trên xe trợ giúp tài xế đƣợc hoàn thành vào 1 thập kỷ sau đó vào năm 1988 bởi Bajcsy. Năm 1996, Dickmanns đã có thể phân tích chuyển động trên đƣờng cao tốc và hoàn thiện công nghệ phát hiện chuyển động (Motion tracking). Lĩnh vực này sau đó phát triển rất mạnh và ứng dụng rất nhiều trong hầu hết các thành tựu tiên tiến. Hình 1.5: Ứng dụng thị giác máy tính trong phân tích chuyển động của xe trên đƣờng cao tốc Những năm đầu thế kỷ 21, đánh dấu bƣớc phát triển vƣợt bậc trong lĩnh vực phát hiện khuôn mặt. Thành tựu về thị giác máy tính ngày càng phát triển. các hội thảo khoa học về thị giác máy tính đƣợc tổ chức thƣờng xuyên. 1.2.3 Các ứng dụng Các ứng dụng của CV rất rộng lớn và đa dạng. Tuy nhiên một số ứng dụng còn ở mức hạn chế và chỉ hiệu quả khi tích hợp với những công nghệ khác. Dƣới đây chúng ta sẽ điểm qua một vài ứng dụng nổi bật, qua đó cảm nhận đƣợc vai trò cũng nhƣ tiềm năng của CV. Y khoa (chẩn đoán, giải phẫu) Các ứng dụng trong chẩn đoán y khoa dựa vào các thiết bị phần cứng đa dạng nhƣ máy chụp cắt lớp (CT - computed tomography), máy chụp cộng hƣởng từ (MRI - magnetic resonance imaging), máy siêu âm, chụp X-quang. Ảnh chụp từ các thiết bị trên sẽ đƣợc điều chỉnh để giúp bác sĩ xem xét dễ dàng hơn, đƣợc tổng hợp để giúp bác sĩ nhìn nhận đầy đủ hơn. Ngoài ra, từ tập hợp ảnh (chụp cắt lớp, chụp bởi camera tí hon) mô hình 3D đƣợc xây dựng và sử dụng hiệu quả trong chẩn đoán cũng nhƣ điều trị. Điển hình nhƣ hệ thống chụp cắt lớp tối tân Brilliance iCT Scanner do công ty thiết bị y khoa Philips phát triển năm 2007 (Hình ) có khả năng tạo mô hình ảnh ba chiều toàn bộ cấu trúc cơ thể bệnh nhân - xƣơng khớp, cơ quan nội tạng và cả đến từng mạch máu. An ninh (camera thông minh, nhận dạng) CV có thể đƣợc tích hợp vào hệ thống camera theo dõi truyền thống, đảm nhận vai trò theo dõi và cảnh báo, giúp giám sát viên không phải trực tiếp quan sát 24/24: phát hiện chuyển động và cảnh báo xâm phạm, phát hiện các tình huống bất thƣờng dựa trên nhận dạng cử động nhƣ ẩu đả, cƣớp ngân hàng, nguy cơ chết đuối Hình 1.6: Ứng dụng thị giác máy tính trong an ninh Một ứng dụng khác của CV trong lĩnh vực an ninh là nhận dạng khuôn mặt đã phổ biến trên một số dòng máy tính xách tay Giao thông (theo dõi lƣu thông, điều khiển xe) Ứng dụng đã đƣợc phổ biến hiện nay là theo dõi lƣu thông: cảnh báo sớm tình trạng ùn tắc, ghi nhận các trƣờng hợp phóng nhanh lạng lách, chụp và truy suất số xe vi phạm để xử lí Một ứng dụng khác đang đƣợc nghiên cứu phát triển là điều khiển xe tự hành. Hệ thống camera ghi nhận hình ảnh xung quanh khi xe di chuyển, bằng cảm quan máy tính, định vị làn đƣờng, phát hiện các vật cản và xe khác, nhận biết các bảng chỉ dẫn, để điều khiển xe. Robot (gia đình, không gian) Trong lĩnh vực không gian, CV có vai trò quan trọng trong việc vận hành các robot thám hiểm (hình12). Tr ƣ ớc hết là xây dựng mô hình 3D của bề mặt hành tinh để hoạch định đƣờng đi an toàn nhất. Trong quá trình di chuyển, robot ƣớc lƣợng chuyển động của mình dựa trên sự phân tích chuyển động của cảnh quan. Khi đã tiếp cận mục tiêu cần khảo sát, robot điều khiển cánh tay cơ học qua quan sát từ camera thực hiện các thao tác đào bới, lấy mẫu đất đá, chụp ảnh chi tiết, Hình 1.7: Ứng dụng thị giác máy tính trong thám hiểm không gian CV cũng đƣợc phát triển cho các robot gia đình, giúp robot có thể xây dựng mô hình và định vị mình (SLAM – Simultaneous Localization and Mapping), giao tiếp với con ngƣời qua nhận dạng cử động. Tự động hóa sản xuất (đo lƣờng, kiểm định chất lƣợng) Trong các dây chuyền sản xuất, công nghệ cảm quan máy tính đƣợc ứng dụng thay thế phƣơng pháp thủ công hoặc cơ học nhằm tăng hiệu suất và tránh va chạm hƣ hại sản phẩm. Phổ biến nhất là đo lƣờng và kiểm định chất lƣợng sản phẩm: màu sắc và độ phủ đều khi sơn vỏ xe hơi, độ cân đối và hình dáng bánh răng (hình 13), chất lƣợng in nhãn mác (hình 14), 1.2.4 Thị giác máy tính ở Việt Nam Trong những năm gần đây, lĩnh vực thị giác máy đã đƣợc ứng dụng rộng rãi trên khắp cả nƣớc và đặc biệt đƣợc nghiên cứu chuyên sâu trong các tổ chức quân đội và một số viện nghiên cứu khác. Việc áp dụng thị giác máy vào các ứng dụng nghiên cứu khoa học đƣợc coi là một khởi đầu cho chặng đƣờng phát triển của thị giác máy ở các trƣờng đại học hiện nay. 1.3 Lịch sử các thuật toán và Robot chơi cờ 1.3.1 Những chiếc máy đánh cờ đầu tiên Một điều đáng kinh ngạc là chƣơng trình chơi cờ đầu tiên đƣợc viết trƣớc khi chiếc máy tính đầu tiên đƣợc phát minh. Nó đƣợc viết bởi một ngƣời nhìn xa trông rộng, biết rằng máy tính có thể lập trình đƣợc sắp ra đời và một khi nó đƣợc phát minh ra, nó có thể chơi cờ đƣợc. Ng ƣ ời đó là Alan Turing, một trong những nhà toán học lớn của thời kỳ đó. Turing đứng đầu nhóm phá mã bí mật "Enigma" của Đức, có ảnh h ƣ ởng lớn đến kết cục của chiến tranh thế giới lần thứ 2. Ông rất thích chơi cờ nhƣng mặc dù rất cực kỳ thông minh và giành rất nhiều công sức để học cờ nhƣng ông vẫn chỉ là một ngƣời chơi tƣơng đối yếu. Sau chiến tranh, ông viết những lệnh hƣớng dẫn để máy tính có thể chơi cờ đƣợc. Vào thời điểm đó chƣa có chiếc máy tính nào có thể chạy đƣợc các lệnh nên chính ông thực hiện các lệnh đó, đóng vai bộ xử lý trung tâm và cần khoảng nửa tiếng cho một nƣớc đi. Một ván cờ đƣợc ghi lại, trong đó chiếc "paper machine" của Turing thua một đồng nghiệp. Cũng vào cùng thời với Turing, một nhà toán học lớn khác, Claude Shanon của Bell Laboratorié cũng nghĩ tới việc dạy máy tính chơi cờ. Ông nhận ra rằng vấn đề là ở chỗ có quá nhiều khả năng tiếp diễn sau một nƣớc đi. Do đó ông phân biệt giữa "chiến lƣợc A", tìm kiếm tất cả những nƣớc tiếp theo, và "chiến lƣợc B", bỏ những đƣờng không cần thiết. Trong những năm chiến tranh, Mĩ xây dựng một phòng thí nghiệm khổng lồ ở Los Alamos trong sa mạc của bang New Mexico. Mục đích của nó là nghiên cứu chế tạo bom nguyên tử. Để tìm ra dạng cấu tạo của phần kích nổ để có thể tạo thành phản ứng dây chuyền đòi hỏi rất nhiều tính toán. [...]... ROBOT CHƠI CỜ TƢỚNG” Nhiệm vụ của đề tài là thực hiện mô hình bàn cờ tƣớng tự động ứng dụng công nghệ xử lý ảnh để nhận dạng quân cờ với các nội dung đã thực hiện trong quá trình làm luận văn nhƣ sau: - Tìm hiểu động cơ bƣớc và các phƣơng pháp điều khiển - Thiết kế và thi công mô hình phần cứng có thể di chuyển đƣợc các quân cờ và đồng thời nhận biết nƣớc đi của ngƣời chơi - Xây dựng chƣơng trình chơi. .. khoa học bắt đầu thí nghiệm với chiếc máy Một trong những điều đầu tiên họ làm là viết một chƣơng trình chơi cờ Nó chơi trên một bàn cờ thu nhỏ 6x6 và không có Tƣợng Mặc dù vậy chƣơng trình này vẫn cần 12 phút để tìm kiếm trƣớc 4 nƣớc 1.3.2 Thuật toán Alpha-Beta Vấn đề chính với các chƣơng trình chơi cờ là số lƣợng lớn các nƣớc phải tính toán Một ví trí trung bình sẽ có 40 nƣớc đi hợp lệ Nếu tính tất... Cỗ máy Belle Họ gọi chiếc máy đó là "Belle" và nó chỉ có thể chơi cờ Nhƣng nó có thể tìm kiếm tới 180 nghìn vị trí trong một giây (siêu máy tính vào thời đó chỉ có thể tìm đƣợc 5000 vị trí) Belle có thể tìm trƣớc 8 hay 9 ply trong các cuộc thi đấu, giúp nó có thể đƣợc chơi trong hàng kiện tƣớng Nó thắng giải vô địch thế giới máy tính chơi cờ đầu tiên và tất cả những giải đấu khác từ 1980 đến 1983 cho... Cyber series) có thể tìm trƣớc tới 7 nƣớc và đạt đƣợc khả năng chơi đáng nể 1.3.3 Chiếc máy Belle Ken Thompson là một nhà khoa học không thể chờ đợi những chiếc siêu máy tính giá hàng triệu đô trở nên 5 hay 25 lần nhanh hơn để có thể chơi cờ tốt hơn Ông và một đồng nghiệp ở Bell Laboratories quyết định chế tạo một chiếc máy chỉ chuyên để chơi cờ, sử dụng hàng trăm con chip và giá khoảng 20 nghìn đô la... đồng thời nhận biết nƣớc đi của ngƣời chơi - Xây dựng chƣơng trình chơi cờ tƣớng trên máy tính ứng dụng trí tuệ nhân tạo - Ứng dụng xử lý ảnh để có thể nhận dạng đƣợc nƣớc đi của ngƣời chơi 1.5 Sơ đồ khối của hệ thống USB Máy Tính: Trung tâm điều khiển mô hình: xử lý ảnh, thuật toán chơi cờ, xử lý nƣớc đi Webcam: quan sát quân cờ Khối mạch vi điều khiển PIC18F67j60: lƣu chuyển thông tin về cho PC và... việc của Ken Thompson Berliner , đã từng là phóng viên báo chỉ ở giải vô địch cờ vua thế giới, chế tạo một chiếc máy tính có phần cứng đặc biệt để chơi cờ, gọi là HiTech Ông và sinh viên Carl Ebeling chế tạo một con chip để tính các nƣớc đi Với 64 chip chạy song song, HiTech suýt nữa đạt đƣợc danh hiệu vô địch máy tính đánh cờ vua thế giới vào năm 1986 (một chiếc Cray thắng giải này) 1.3.5 Deep Blue... nƣớc 16000 vị trí có thể xảy ra Sau hai nƣớc nó là 2.5 triệu vị trí và sau ba nƣớc là 4.1 tỷ Trung bình một ván cờ kéo dài khoảng 40 nƣớc Số vị trí cần tính là khoảng 10 mũ 128, lớn hơn cả số nguyên tử có trong vũ trụ (chỉ khoảng 10 mũ 80) Do đó máy tính lúc đó dƣờng nhƣ không bao giờ có thể chơi ở trình độ kiện tƣớng Bƣớc nhẩy vọt đầu tiên là năm 1958 khi ba nhà khoa học của đại học Carnegie-Mellon . đại học hiện nay. 1.3 Lịch sử các thuật toán và Robot chơi cờ 1.3.1 Những chiếc máy đánh cờ đầu tiên Một điều đáng kinh ngạc là chƣơng trình chơi cờ đầu tiên đƣợc viết trƣớc khi chiếc máy tính. PIC18F67J60 27 CHƢƠNG 4: XÂY DỰNG THUẬT TOÁN CHƠI CỜ 44 4.1 Dạng trò chơi 44 4.2 Cây trò chơi 45 4.3 Vét cạn 45 4.4 Chiến lƣợc tìm kiếm trong trò chơi 47 4.5 Thủ tục minimax 48 4.6 Thủ tục Alpha-Beta:. của luận văn Tên đề tài là: ROBOT CHƠI CỜ TƢỚNG”. Nhiệm vụ của đề tài là thực hiện mô hình bàn cờ tƣớng tự động ứng dụng công nghệ xử lý ảnh để nhận dạng quân cờ với các nội dung đã thực hiện

Ngày đăng: 28/07/2015, 14:37

Tài liệu cùng người dùng

Tài liệu liên quan