public List<ArtifactDetectedObject> detectObjects(BufferedImage bImage) {
List<ArtifactDetectedObject> detectedObjectList = new ArrayList<ArtifactDetectedObject>();
Mat image = OpenCVUtils.bufferedImageToMat(bImage);
if (image != null) {
MatOfRect faceDetections = new MatOfRect();
double width = image.width();
double height = image.height();
for (CascadeClassifierHolder objectClassifier : objectClassifiers) {
objectClassifier.cascadeClassifier.detectMultiScale(image, faceDetections);
for (Rect rect : faceDetections.toArray()) {
ArtifactDetectedObject detectedObject = new ArtifactDetectedObject(
rect.x / width,
rect.y / height,
(rect.x + rect.width) / width,
(rect.y + rect.height) / height,