In order to achieve the goals for this project, the PCB Reverse Engineering has 12 total requirements that has to be met, which are the following:
- Algorithm Reference ( All algorithms used from any framework must be cited in the artifacts of the project).
- Code Accessibility (The coding portion needs to be stored on a public repository (such as GitHub) for access).
- Component Identification (The system will categorize at least 70% of the discrete components on the PCB as either through hole component, surface mount component, or other).
- Ease of Use (9 out of 10 users will be able to use the system without prior instruction or directions).
- Generate a Netlist (The system will generate and display an editable netlist of all interconnections on the PCB that is at least 70% complete).
- Image Condition Checking (The system will make sure that the PCB image has a resolution of at least 1080P and have image traces distinguishable from the board by the human eye).
- Netlist Representation (The system must generate the netlist of PCB file with read and write permissions).
- OSU Server Compatibility (Source files used for the system will be compatible, modifiable, and executable within the OSU server).
- Reasonable Generation Time (As soon as the website interface has received an appropriate resolution image, the system will take no longer than 30 minutes to analyze the PCB image and generate the netlist. (The time it takes for the user to correct labels on the netlist is not included in this calculation).
- Use of Open Source (The software implementation must utilize at least one open source Computer Vision Framework such as OpenCV or Tensorflow for Deep Learning).
- User Interaction (The system will only need one top picture of the PCB board and one bottom picture of the PCB board).
- User Feedback (The system will prompt the user after generating the netlist on whether the result is correct in order to enhance the performance).