Page 172 - python
P. 172

146




                   11.13 การตรวจจับใบหนาดวย Haar Cascade

                                                      ั
                          Haar Cascades เปนการตรวจจบใบหนา เผยแพรในป พ.ศ. 2544 เปนการตรวจจับใบหนา
                                                                                  ั
                                                                              ี่
                   ภายในภาพ โดย Viola และ Jones ไลบรารี่ OpenCV เปนเครื่องมือเกยวกบการประมวลผลภาพไดรวม
                   อัลกอริทึมตรวจจับใบหนาของ Haar Cascades เอาไวในไฟล haarcascade_frontalface_default.xml


                   ตัวอยางที่ 11.10 การตรวจจับใบหนาดวย Haar Cascades
                    %pylab inline
                    import cv2


                    !wget  "https://dsdi.msu.ac.th/programming/haarcascade_frontalface_default.xml"
                    !wget "http://dsdi.msu.ac.th/articles/programming/lena.jpg"
                    model = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
                    img = cv2.imread("lena.jpg")

                    img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)
                    faces = model.detectMultiScale(img, 1.3, 5)
                    for (x, y, w, h) in faces :

                         cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)
                    plt.imshow(img)

                   ผลลัพธ :




















                                 ภาพประกอบที่ 11.14 แสดงการตรวจจับใบหนาดวย Haar Cascade

                          ตัวอยางที่ 11.10 คําสั่ง %pylab inline เปนการขอใช numpy และ matplotlib คําสั่ง Import

                   cv2 เปนการขอใช opencv คําสั่ง wget เปนการโหลดไฟลจากเว็บ ในตัวอยางนี้โหลดไฟล
                   haarcascade_frontalface _default.xml เปนโมเดลในการตรวจจับใบหนา ตัวแปร model ใชสําหรับ
                   ตรวจจับใบหนาโดยสรางจากคําสั่ง CascadeClassifier() โดยโหลดคาน้ําหนักจากไฟล xml จากนั้นทํา
                   การโหลดภาพ lena ดวยคําสั่ง imread() และทําการตรวจจับดวยคําสั่ง detectMultiScale() ผลลัพธจะ
   167   168   169   170   171   172   173   174   175   176   177