Are CNNs best approaches to find and count objects in images?
For your situation, I would recommend using an object detection network to both locate and classify your components.  Although you do not need the location or classification data, you can still count the number of objects the network detects.  Moreover, this approach does not require any data science background because there are many tutorials on this subject and tons of out-of-the-box tools, such as tensorflow's object detection API.

You will need to annotate your data, but there are tons of programs to help you with that too.  Here's one I found quickly.

I suggest using faster-RCNN with the NAS feature extractor because, although it is slower than other CNN architectures, it is the most accurate.  Also, the network would probably perform better if you did not combine all the components into a single class.



The steps necessary to accomplish this task are essentially the following:


Install and setup tensorflow
Download faster RCNN NAS from the tensorflow detection model zoo
Annotate your data by drawing bounding boxes around the components and labeling each bounding box.
Train your model
After saving the trained model, you just need to setup a pipeline that takes an input image, feeds it to your network, and returns the total number of detections ignoring the bounding box and classification data.  Here's a great tutorial for deploying a trained model.