Commit 1d02e384 authored by pattaraporn's avatar pattaraporn

ระบบสแกนใบหน้าสำหรับเเคชเชียร์

parent 2f1a9133
...@@ -197,7 +197,7 @@ Image Processing \cite{ImageProcessing} การประมวลผลภา ...@@ -197,7 +197,7 @@ Image Processing \cite{ImageProcessing} การประมวลผลภา
ดังรูปที่ \ref{Fig:face} ดังรูปที่ \ref{Fig:face}
\begin{figure}[H] \begin{figure}[H]
\includegraphics[width=\columnwidth]{Figures/insect2/face} \includegraphics[width=\columnwidth]{Figures/insect2/face}
\caption{ภาพเเสดงกระบวนการทำงานของระบบรุ็จำใบหน้า}{ที่มา: http://asd.co.th/เทคโนโลยีระบบตรวจจับใบหน้า/} \caption{ภาพเเสดงกระบวนการทำงานของระบบรู้จำใบหน้า}{ที่มา: http://asd.co.th/เทคโนโลยีระบบตรวจจับใบหน้า/}
\label{Fig:face} \label{Fig:face}
\end{figure} \end{figure}
......
...@@ -423,7 +423,7 @@ Use Case Diagram เป็นแผนผังเพื่อแสดงฟั ...@@ -423,7 +423,7 @@ Use Case Diagram เป็นแผนผังเพื่อแสดงฟั
\label{Fig:sequense-register} \label{Fig:sequense-register}
\end{figure} \end{figure}
จากภาพที่ \ref{Fig:sequense-register}สามารถอธิบายแผนภาพ Sequence Diagram ของการสมัครสมาชิก ได้ดังนี้ เมื่อพนักงานกดสมัครสมาชิกระบบจะไปเรียกใช้ฟังก์ชัน Register() โดยจะแสดงหน้าสมัครสมาชิกส่งข้อความไปเรียกข้อมูลใน registerForm() และส่งค่าข้อมูลทั้งหมดของสมาชิกมาในรูปแบบ form เมื่อพนักงานกรอกชื่อ นามสุกุล เลขบัตรประจำตัวประชาชน เบอร์โทรศัพท์ อายู เพศ อาชีพ เลือกรูปโปรไฟลเสร็จและกดปุมสมัครสมาชิกระบบจะไปเรียกฟังก์ชัน facedetect() เเละ trainFace() ซึ่งจะทำการบันทึกใบหน้าลูกค้า นำใบหน้าไปตรวจสอบ ว่ากรอกข้อมูลครบทุกช่องหรือไม่ ถ้าครบแล้วจะส่งข้อมูลไปตรวจสอบในฐานข้อมูล SQLite3 และจะทำการสร้าง user เสร็จจะส่งสถานะการสมัครสมาชิกไปกลับไปให้คลาส Registeruser() และจะแสดงข้อมูลของผู้ใช้ถือว่าสมัครสมาชิกสำเร็จ หรือในกรณีกรอกข้อมูลไม่ครบทุกช่องตามที่กำหนดระบบจะแจ้งให้กรอกช่องที่ยังไม่ได้ทำการกรอก และทำการแจ้งสมัครสมาชิกสำเร็จ จากภาพที่ \ref{Fig:sequense-register}สามารถอธิบายแผนภาพ Sequence Diagram ของการสมัครสมาชิก ได้ดังนี้ เมื่อพนักงานกดสมัครสมาชิกระบบจะไปเรียกใช้ฟังก์ชัน Register() โดยจะแสดงหน้าสมัครสมาชิกส่งข้อความไปเรียกข้อมูลใน registerForm() และส่งค่าข้อมูลทั้งหมดของสมาชิกมาในรูปแบบ form เมื่อพนักงานกรอกชื่อ นามสกุล เลขบัตรประจำตัวประชาชน เบอร์โทรศัพท์ อายุ เพศ อาชีพ เลือกรูปโปรไฟลเสร็จและกดปุมสมัครสมาชิกระบบจะไปเรียกฟังก์ชัน facedetect() เเละ trainFace() ซึ่งจะทำการบันทึกใบหน้าลูกค้า นำใบหน้าไปตรวจสอบ ว่ากรอกข้อมูลครบทุกช่องหรือไม่ ถ้าครบแล้วจะส่งข้อมูลไปตรวจสอบในฐานข้อมูล SQLite3 และจะทำการสร้าง user เสร็จจะส่งสถานะการสมัครสมาชิกไปกลับไปให้คลาส Registeruser() และจะแสดงข้อมูลของผู้ใช้ถือว่าสมัครสมาชิกสำเร็จ หรือในกรณีกรอกข้อมูลไม่ครบทุกช่องตามที่กำหนดระบบจะแจ้งให้กรอกช่องที่ยังไม่ได้ทำการกรอก และทำการแจ้งสมัครสมาชิกสำเร็จ
......
...@@ -138,11 +138,11 @@ def loginpage(request): ...@@ -138,11 +138,11 @@ def loginpage(request):
return render(request, 'Webcashier/login.html') return render(request, 'Webcashier/login.html')
\end{lstlisting}} \end{lstlisting}}
\caption{การทำงานของระบบเมื่อผู้ใช้เข้าสู่ระบบโดยการสแกนใบหน้า} \caption{การทำงานของระบบเมื่อพนักงานเข้าสู่ระบบ}
\label{Fig:การทำงานของระบบเมื่อผู้ใช้เข้าสู่ระบบโดยการสแกนใบหน้า} \label{Fig:การทำงานของระบบเมื่อพนักงานเข้าสู่ระบบ}
\end{figure} \end{figure}
จากภาพที่ \ref{Fig:การทำงานของระบบเมื่อผู้ใช้เข้าสู่ระบบโดยการสแกนใบหน้า} โครงสร้างของไฟล์ views.py สามารถอธิบายการทำงานได้ดังนี้ จากภาพที่ \ref{Fig:การทำงานของระบบเมื่อพนักงานเข้าสู่ระบบ} โครงสร้างของไฟล์ views.py สามารถอธิบายการทำงานได้ดังนี้
\begin{itemize}[label={--}] \begin{itemize}[label={--}]
\item บรรทัดที่ 1 เมื่อผู้ใช้กดเข้าสู่ระบบจะเข้ามาทำงานในฟังก์ชัน loginpage() \item บรรทัดที่ 1 เมื่อผู้ใช้กดเข้าสู่ระบบจะเข้ามาทำงานในฟังก์ชัน loginpage()
\item บรรทัดที่ 3-7 เป็นการยิงข้อมูล username และ password ที่ผู้ใช้กรอกเข้ามาเพื่อนำไปตรวจสอบกับข้อมูลในฐานข้อมูล ถ้าตรงกันให้ไปยังหน้าหลัก \item บรรทัดที่ 3-7 เป็นการยิงข้อมูล username และ password ที่ผู้ใช้กรอกเข้ามาเพื่อนำไปตรวจสอบกับข้อมูลในฐานข้อมูล ถ้าตรงกันให้ไปยังหน้าหลัก
...@@ -165,10 +165,10 @@ def Incustumerpage(request,faceid,Oid ): ...@@ -165,10 +165,10 @@ def Incustumerpage(request,faceid,Oid ):
return render(request, 'Webcashier/Incustumer.html',data)) return render(request, 'Webcashier/Incustumer.html',data))
\end{lstlisting}} \end{lstlisting}}
\caption{การทำงานของระบบเมื่อผู้ใช้กดดูรายการเสื้อผ้าทั้งหมด} \caption{การทำงานของระบบเมื่อพนักงานสแกนใบหน้าลูกค้าที่เป็นสมาชิก}
\label{Fig:การทำงานของระบบเมื่อผู้ใช้กดดูรายการเสื้อผ้าทั้งหมด} \label{Fig:การทำงานของระบบเมื่อพนักงานสแกนใบหน้าลูกค้าที่เป็นสมาชิก}
\end{figure} \end{figure}
จากภาพที่ \ref{Fig:การทำงานของระบบเมื่อผู้ใช้กดดูรายการเสื้อผ้าทั้งหมด} โครงสร้างของไฟล์ views.py สามารถอธิบายการทำงานได้ดังนี้ จากภาพที่ \ref{Fig:การทำงานของระบบเมื่อพนักงานสแกนใบหน้าลูกค้าที่เป็นสมาชิก} โครงสร้างของไฟล์ views.py สามารถอธิบายการทำงานได้ดังนี้
\begin{itemize}[label={--}] \begin{itemize}[label={--}]
\item บรรทัดที่ 1 เมื่อทำการสแกนใบหน้าเเล้วพบว่ามีข้อมูลในระบบ จะเข้ามาทำงานในฟังก์ชัน Icustumerpage() \item บรรทัดที่ 1 เมื่อทำการสแกนใบหน้าเเล้วพบว่ามีข้อมูลในระบบ จะเข้ามาทำงานในฟังก์ชัน Icustumerpage()
\item บรรทัดที่ 2 เป็นการเรียกดูข้อมูลตรงกับ face id ในตาราง ที่เท่่ากับสแกนหน้าใบหน้า เเละรายการสินค้าในตารางที่ตรางกับ face \item บรรทัดที่ 2 เป็นการเรียกดูข้อมูลตรงกับ face id ในตาราง ที่เท่่ากับสแกนหน้าใบหน้า เเละรายการสินค้าในตารางที่ตรางกับ face
...@@ -196,10 +196,10 @@ def Order(request): ...@@ -196,10 +196,10 @@ def Order(request):
form.save() form.save()
return render(request, 'Webcashier/Order.html',context) return render(request, 'Webcashier/Order.html',context)
\end{lstlisting}} \end{lstlisting}}
\caption{การทำงานของระบบเมื่อผู้ใช้กดดูรายละเอียดสินค้า} \caption{การทำงานของระบบเมื่อผู้ใช้กดสั่งซื้อสินค้า}
\label{Fig:การทำงานของระบบเมื่อผู้ใช้กดดูรายละเอียดสินค้า} \label{Fig:การทำงานของระบบเมื่อผู้ใช้กดสั่งซื้อสินค้า}
\end{figure} \end{figure}
จากภาพที่ \ref{Fig:การทำงานของระบบเมื่อผู้ใช้กดดูรายละเอียดสินค้า} โครงสร้างของไฟล์ backEnd.py สามารถอธิบายการทำงานได้ดังนี้ จากภาพที่ \ref{Fig:การทำงานของระบบเมื่อผู้ใช้กดสั่งซื้อสินค้า} โครงสร้างของไฟล์ backEnd.py สามารถอธิบายการทำงานได้ดังนี้
\begin{itemize}[label={--}] \begin{itemize}[label={--}]
\item บรรทัดที่ 1 เมื่อผู้ใช้กะปุ่มสั่งซื้อสินค้าระบบจะเข้ามาทำงานในฟังก์ชัน Order() \item บรรทัดที่ 1 เมื่อผู้ใช้กะปุ่มสั่งซื้อสินค้าระบบจะเข้ามาทำงานในฟังก์ชัน Order()
\item บรรทัดที่ 2-4 เป็นการดึงข้อมูลชื่อดมนูในตาราง Product มาเเสดงค่า \item บรรทัดที่ 2-4 เป็นการดึงข้อมูลชื่อดมนูในตาราง Product มาเเสดงค่า
...@@ -239,7 +239,7 @@ def faceDetect(self, Entry1,): ...@@ -239,7 +239,7 @@ def faceDetect(self, Entry1,):
cv2.destroyAllWindows() cv2.destroyAllWindows()
\end{lstlisting}} \end{lstlisting}}
\caption{การทำงานของระบบเมื่อผู้ใช้กดแก้ไขสินค้า} \caption{การทำงานของฟังก์ชัน faceDetect()}
\label{Fig:การทำงานของฟังก์ชัน faceDetect()} \label{Fig:การทำงานของฟังก์ชัน faceDetect()}
\end{figure} \end{figure}
\newpage \newpage
...@@ -282,11 +282,11 @@ def trainFace(self): ...@@ -282,11 +282,11 @@ def trainFace(self):
self.__recognizer.save(BASE_DIR+'/Webcashier/trainer/trainer.yml') # recognizer.save() worked on Mac, but not on Pi self.__recognizer.save(BASE_DIR+'/Webcashier/trainer/trainer.yml') # recognizer.save() worked on Mac, but not on Pi
print("\n {0} faces trained. Exiting Program".format(len(np.unique(ids)))) print("\n {0} faces trained. Exiting Program".format(len(np.unique(ids))))
\end{lstlisting}} \end{lstlisting}}
\caption{การทำงานของฟังก์ชัน recognizeFace} \caption{การทำงานของฟังก์ชัน trainFace()}
\label{Fig:การทำงานของฟังก์ชันrecognizeFace} \label{Fig:การทำงานของฟังก์ชัน trainFace()}
\end{figure} \end{figure}
\newpage \newpage
จากภาพที่ \ref{Fig:การทำงานของฟังก์ชัน recognizeFace} โครงสร้างของไฟล์ backEnd.py สามารถอธิบายการทำงานได้ดังนี้ จากภาพที่ \ref{Fig:การทำงานของฟังก์ชัน trainFace()} โครงสร้างของไฟล์ backEnd.py สามารถอธิบายการทำงานได้ดังนี้
\begin{itemize}[label={--}] \begin{itemize}[label={--}]
\item บรรทัดที่ 1 เมื่อมีการเรียกใช้ฟังก์ชัน trainFace() หลังจากฟังก์ชัน faceDetect() ทำงานเสร็จ \item บรรทัดที่ 1 เมื่อมีการเรียกใช้ฟังก์ชัน trainFace() หลังจากฟังก์ชัน faceDetect() ทำงานเสร็จ
\item บรรทัดที่ 2 การกำหนดเส้นทางสำหรับเก็บรูปภาพ \item บรรทัดที่ 2 การกำหนดเส้นทางสำหรับเก็บรูปภาพ
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment