ในสมัยก่อนการทำเว็บประกาศขายหรือที่สมาชิกสามารถใส่รูปภาพได้เองนั้น เป็นเรื่องยากที่ต้องตรวจสอบว่าเป็นรูปที่ต้องการจริงหรือเปล่า เช่นเป็นเว็บเกี่ยวกับประกาศขายรถแต่ใส่รูปของบ้านมาแทนทำให้ผู้ดูแลเว็บต้องปวดหัวมานั่งลบกันทุกวัน ปัจจะบันก็มี AI ที่จะเข้ามาช่วยทำงานแทนคนในส่วนนี้ ผมไปเจอ api ที่เป็น image recognition ชื่อ https://www.clarifai.com/ แต่วันนี้ผมจะใช้ ่javascript จริงๆก็มีอีกหลายยี่ห้อ ทั้ง google,ibm,microsoft
เรามาดูตัวอย่างกันครับ
(สมมุติถ้าผมทำเว็บรถที่สมาชิกสามารถมาลงรูปรถเองได้ต้องใส่รูปรถเท่านั้น )
จากตัวอย่างหากไม่ใช่รูปรถระบบจะบอกว่าไม่มีรูปรถ และด้านขวา api จะตอบกลับมาว่ามีโอกาศเป็นรูปอะไรบ้าง ซึ่งประโยชน์ตรงนี้เองที่ทำให้เราสามารถตรวจสอบรูปเบื้องตนของสมาชิกที่จะลงรูปก่อนได้
วิธีการ
1 ไปสมัครสมาชิกกับ www.clarifai.com และสร้าง api key ขึ้นมาเพื่อใช้งาน
2 เป็นส่วนของ Code js ที่สำคัญ
$(document).ready(function(){ const app = new Clarifai.App({ apiKey: 'Your Api Key' }); var detect = "car"; // ตัวแปลสำหรับ Detect ว่าให้เป็นอะไร var status_yes = ""; // text แสดงสถานะ // functionสำหรับอ่่านไฟล์ในและส่ง Api function readURL(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function (e) { if(e.total>1235716){ // Detect Size alert("ไฟล์ใหญ่เกินไป"); return false; } var imageData = e.target.result; $("#tempimage .datashow").html("<img width='100%' src='" + imageData +"' />"); imageData = imageData.replace(/^data:image\/(.*);base64,/, ""); // ส่วนเรียก api app.models.predict(Clarifai.GENERAL_MODEL,imageData).then(function(response) { $(".res").html(""); $(".imagetxt").html(""); status_yes = "<span style='color:red;'>ไม่มีรูปของรถยนต์อยู่เลย</span>"; $.each(response.outputs[0].data.concepts, function( index, value ) { // loop ค่่าที่ api ตอบกลับมา if(value.name==detect && value.value > 0.95){ status_yes = "<span style='color:green;'>มีรูปรถผ่าน</span>"; } $(".res").append("<p>"+value.name+" : "+value.value+"</p>"); }); $(".imagetxt").html(status_yes); }, function(err) { console.error(err); }); } reader.readAsDataURL(input.files[0]); } } $(".fileupload").change(function(){ readURL(this); }); });
ซึ่ง code js ที่สำคัญก็มีแค่นี้ครับ ส่วนไฟล์ทั้งหมดสามารถ Download ได้ครับ
ปล.
- api ส่วนใหญ่จะเสียเงินตามครั้งการใช้งาน แต่จะเริ่มจากฟรีก่อน
- การใช้ javascrpt ตรวจสอบอาจไม่ปลอดภัยควรใช้ Server ตรวจสอบอีกชั้นจะดีกว่า