diff --git a/boards/default_src/micropython/blocks/ai_local.js b/boards/default_src/micropython/blocks/ai_local.js index 6848ca7d..7b2cc33a 100644 --- a/boards/default_src/micropython/blocks/ai_local.js +++ b/boards/default_src/micropython/blocks/ai_local.js @@ -428,7 +428,7 @@ export const SCREEN_SHOW_CAM_GRAPH_SHOOT = { init: function () { this.setColour(DISPLAY_ONBOARD_HUE); this.appendValueInput("SUB") - .appendField(Blockly.Msg.MIXLY_MICROBIT_monitor + Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_IMAGE) + .appendField(Blockly.Msg.OLEDDISPLAY + Blockly.Msg.MIXLY_MICROBIT_IMAGE) this.appendDummyInput('') .appendField(Blockly.Msg.MIXLY_SYNC_DISPLAY) .appendField(new Blockly.FieldDropdown([ @@ -445,7 +445,7 @@ export const SCREEN_DISPLAY_IMAGE = { init: function () { this.setColour(DISPLAY_ONBOARD_HUE); this.appendValueInput('direct') - .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_MONITOR_SHOW_IMAGE) + .appendField(Blockly.Msg.OLED_BITMAP) .appendField(Blockly.Msg.MIXLY_MICROBIT_PY_STORAGE_THE_PATH); this.appendDummyInput('') .appendField(Blockly.Msg.MIXLY_ROTATION_ANGLE) @@ -490,7 +490,7 @@ export const AI_CAMERA_INIT = { [Blockly.Msg.MIXLY_COLOR_RECOGNTITION, "ColorDetector"], [Blockly.Msg.MIXLY_CAT + Blockly.Msg.MIXLY_RECOGNITION, "CatDetector"], [Blockly.Msg.MIXLY_HUMAN + Blockly.Msg.MIXLY_RECOGNITION, "HumanDetector"], - [Blockly.Msg.MIXLY_AipFace, "FaceDetector"] + [Blockly.Msg.MIXLY_FACE_CLASSIFIER, "FaceDetector"] ]), "kind"); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_WIDTH) @@ -552,7 +552,7 @@ export const AI_CAMERA_INIT_FACERECOGNIZE = { ]),"height"); this.appendDummyInput("") .appendField(Blockly.Msg.MIXLY_SETUP + Blockly.Msg.LISTS_SET_INDEX_INPUT_TO) - .appendField(Blockly.Msg.MIXLY_FACE_RECOGNIZER); + .appendField(Blockly.Msg.MIXLY_AipFace); this.appendValueInput("PATH") .appendField(Blockly.Msg.PATH_OF_FACE_DATABASE); this.setInputsInline(true); @@ -795,6 +795,9 @@ export const REGISTER_NEW_FACE = { this.appendValueInput('SUB') .appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL) .setCheck("var"); + this.appendValueInput('IMAGE') + .appendField(Blockly.Msg.MIXLY_MICROPYTHON_SOCKET_MAKE + Blockly.Msg.MIXLY_AipImageClassify_Image) + .setCheck("var"); this.appendDummyInput() .appendField(Blockly.Msg.register_a_new_face_in_the_database); this.appendValueInput("NAME") @@ -821,6 +824,20 @@ export const DELETE_FACE_FROM_DATABASE = { } }; +export const DELETE_FACE_ALL = { + init: function () { + this.setColour(AI_LOCAL_GRAPH_HUE); + this.appendValueInput('SUB') + .appendField(Blockly.Msg.MIXLY_TENSORFLOW_MODEL) + .setCheck("var"); + this.appendDummyInput() + .appendField(Blockly.Msg.MIXLY_MICROBIT_JS_DELETE_VAR + Blockly.Msg.MIXLY_ALL + Blockly.Msg.MIXLY_FACE); + this.setPreviousStatement(true); + this.setNextStatement(true); + this.setInputsInline(true); + } +}; + export const PRINT_FACE_DATABASE = { init: function () { this.setColour(AI_LOCAL_GRAPH_HUE); diff --git a/boards/default_src/micropython/generators/ai_local.js b/boards/default_src/micropython/generators/ai_local.js index e3c6454b..4722dba2 100644 --- a/boards/default_src/micropython/generators/ai_local.js +++ b/boards/default_src/micropython/generators/ai_local.js @@ -312,21 +312,21 @@ export const Register_color_recognition_fixed= function (_, generator) { var color = this.getFieldValue('color'); var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC); if (color == "red"){ - var code = sub + '.register_color((170, 100, 100), (10, 255, 255),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((170, 100, 100), (10, 255, 255),"'+ color +'", '+ area + ')\n'; }else if(color == "green"){ - var code = sub + '.register_color((35, 100, 100), (85, 255, 255),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((35, 100, 100), (85, 255, 255),"'+ color +'",' + area + ')\n'; }else if(color == "blue"){ - var code = sub + '.register_color((100, 100, 100), (130, 255, 255),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((100, 100, 100), (130, 255, 255),"'+ color +'", '+ area + ')\n'; }else if(color == "yellow"){ - var code = sub + '.register_color((20, 100, 100), (35, 255, 255),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((20, 100, 100), (35, 255, 255),"'+ color +'", '+ area + ')\n'; }else if(color == "cyan"){ - var code = sub + '.register_color((85, 100, 100), (100, 255, 255),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((85, 100, 100), (100, 255, 255),"'+ color +'", '+ area + ')\n'; }else if(color == "purple"){ - var code = sub + '.register_color((130, 100, 100), (150, 255, 255),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((130, 100, 100), (150, 255, 255),"'+ color +'", '+ area + ')\n'; }else if(color == "black"){ - var code = sub + '.register_color((0, 0, 0), (180, 255, 50),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((0, 0, 0), (180, 255, 50),"'+ color +'", '+ area + ')\n'; }else if(color == "white"){ - var code = sub + '.register_color((0, 0, 200), (180, 50, 255),'+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color((0, 0, 200), (180, 50, 255),"'+ color +'", '+ area + ')\n'; } return code; } @@ -337,17 +337,15 @@ export const Register_color_recognition = function (_, generator) { var max = generator.valueToCode(this, 'MAX', generator.ORDER_ATOMIC); var color = generator.valueToCode(this, 'COLOR', generator.ORDER_ATOMIC); var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC); - var code = sub + '.register_color(' + min +', '+ max +', '+ color +', area_threshold='+ area + ')\n'; + var code = sub + '.register_color(' + min +', '+ max +', '+ color +', '+ area + ')\n'; return code; } export const REGISTER_NEW_FACE = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); - var min = generator.valueToCode(this, 'MIN', generator.ORDER_ATOMIC); - var max = generator.valueToCode(this, 'MAX', generator.ORDER_ATOMIC); - var color = generator.valueToCode(this, 'COLOR', generator.ORDER_ATOMIC); - var area = generator.valueToCode(this, 'AREA', generator.ORDER_ATOMIC); - var code = sub + '.enroll(' + min +', '+ max +', '+ color +', area_threshold='+ area + ')\n'; + var image = generator.valueToCode(this, 'IMAGE', generator.ORDER_ATOMIC); + var name = generator.valueToCode(this, 'NAME', generator.ORDER_ATOMIC); + var code = sub + '.enroll(' + image +', '+ validate +', '+ name +')\n'; return code; } @@ -358,6 +356,12 @@ export const DELETE_FACE_FROM_DATABASE = function (_, generator) { return code; } +export const DELETE_FACE_ALL = function (_, generator) { + var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); + var code = sub + '.clear_face()\n'; + return code; +} + export const PRINT_FACE_DATABASE = function (_, generator) { var sub = generator.valueToCode(this, 'SUB', generator.ORDER_ATOMIC); var code = sub + '.print_database()\n'; diff --git a/boards/default_src/micropython_esp32s3/template.xml b/boards/default_src/micropython_esp32s3/template.xml index 1f185a0c..cf3795da 100644 --- a/boards/default_src/micropython_esp32s3/template.xml +++ b/boards/default_src/micropython_esp32s3/template.xml @@ -1971,12 +1971,12 @@ - - - mixly.jpg - - - + + + mixly.jpg + + + @@ -2430,10 +2430,10 @@ - - image - - + + image + + @@ -2471,12 +2471,17 @@ - - - - mixly.jpg - - + + image + + + + + mixly.jpg + + + + @@ -2486,7 +2491,12 @@ - + + image + + + + @@ -2565,6 +2575,11 @@ Model + + + image + + name @@ -2590,6 +2605,13 @@ + + + + Model + + + _results diff --git a/common/msg/blockly/zh-hans.js b/common/msg/blockly/zh-hans.js index 204e28d0..9caf3609 100644 --- a/common/msg/blockly/zh-hans.js +++ b/common/msg/blockly/zh-hans.js @@ -4234,7 +4234,6 @@ ZhHans.MIXLY_LOGOUT = '注销'; ZhHans.MIXLY_REGISTER = '注册'; ZhHans.REGISTER_COLOR_RECOGNITION = '注册识别颜色(自定义)'; ZhHans.MINIMUN_DETECTABLE_AREA = '最小检测面积(像素)'; -ZhHans.MIXLY_FACE_RECOGNIZER = '人脸分辨'; ZhHans.PATH_OF_FACE_DATABASE = '人脸数据库文件的路径'; ZhHans.register_a_new_face_in_the_database = '在数据库中注册新人脸'; ZhHans.delete_the_face_from_the_database = '从数据库中删除人脸';