Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การโน้มน้าวใจโดยใช้ Python?


การจดจำรูปภาพเคยใช้วิธีการที่ง่ายกว่ามาก เช่น การถดถอยเชิงเส้นและการเปรียบเทียบความคล้ายคลึงกัน เห็นได้ชัดว่าผลลัพธ์ไม่ดีนัก แม้แต่งานง่าย ๆ ในการจดจำตัวอักษรที่เขียนด้วยลายมือก็พิสูจน์ได้ยาก Convolution neural network (CNNs) ควรจะเป็นขั้นตอนที่เพิ่มขึ้นจากสิ่งที่เราทำตามปกติโดยเสนอวิธีการคำนวณราคาถูกในการจำลองกิจกรรมประสาทของสมองมนุษย์อย่างหลวม ๆ เมื่อรับรู้ภาพ

ภาพรวมโครงข่ายประสาทเทียม

การโน้มน้าวใจโดยใช้ Python?

คล้ายกับที่เรารู้จักวัตถุต่างๆ กันมาก อัลกอริทึมของคอมพิวเตอร์จำเป็นต้องตรวจสอบรูปภาพนับล้านก่อนที่จะสามารถสรุปข้อมูลทั่วไปและตัดสินใจเกี่ยวกับภาพที่ไม่เคยเห็นมาก่อน

คอมพิวเตอร์มองเห็นทุกภาพเป็นอาร์เรย์ 2 มิติของตัวเลข หรือที่เรียกว่าพิกเซล ในการระบุวัตถุในภาพ คอมพิวเตอร์ใช้เครือข่ายประสาทเทียมชนิดพิเศษ:โครงข่ายประสาทเทียม (CNN) CNN มาจากการดำเนินการที่สำคัญที่สุดอย่างหนึ่งในเครือข่าย นั่นคือ Convolution

ในโครงข่ายประสาทเทียม แต่ละชั้นจะถูกจัดระเบียบตามความกว้าง ความสูง และความลึก Convolution ซึ่งเป็นส่วนหลักของ CNN รวมสองฟังก์ชันเพื่อสร้างฟังก์ชันที่สาม (ผสานข้อมูลสองชุด) มันหมายถึงการพิจารณาการบิด (รูปภาพ) ที่เราเพียงแค่คูณเมทริกซ์สองตัวตามองค์ประกอบแล้วตามด้วยผลรวม

การบิดเป็นขั้นตอนสามขั้นตอนในการประมวลผลภาพ -

  • เรานำภาพที่ป้อนเข้ามา

  • เมทริกซ์เคอร์เนลที่เราจะนำไปใช้กับอิมเมจอินพุต

  • และภาพสุดท้ายเพื่อเก็บเอาท์พุตของอิมเมจอินพุตที่รวมเข้ากับเคอร์เนล

ด้านล่างนี้คือการใช้งานตัวกรอง sobel เพียงเล็กน้อยโดยใช้ opencv ซึ่งเป็นตัวกรองการประมวลผลภาพสำหรับการตรวจจับขอบ

โค้ดตัวอย่าง

import cv2
import numpy as np

img = cv2.imread('beach.jpg')
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY).astype(float)

edge_x = cv2.Sobel(img,cv2.CV_64F,1,0,ksize = 3)
edge_y = cv2.Sobel(img,cv2.CV_64F,0,1,ksize = 3)
edge = np.sqrt(edge_x ** 2 + edge_y ** 2)

# image can be normalized to
# fit into 0..255 color space
cv2.imwrite('beach_convol.jpg', edge)

ใส่รูปภาพ

การโน้มน้าวใจโดยใช้ Python?

ภาพที่ส่งออก

การโน้มน้าวใจโดยใช้ Python?