Program: 150755
Project: 150755
Buggy source:
public static void main(String[] args){
  String imagePath=UtilIO.pathExample("String_Node_Str");
  String patternPath=UtilIO.pathExample("String_Node_Str");
  String imageName="String_Node_Str";
  CameraPinholeRadial param=CalibrationIO.load(new File(imagePath,"String_Node_Str"));
  LensDistortionNarrowFOV lensDistortion=new LensDistortionRadialTangential(param);
  BufferedImage input=UtilImageIO.loadImage(imagePath,imageName);
  GrayF32 original=ConvertBufferedImage.convertFrom(input,true,ImageType.single(GrayF32.class));
  SquareImage_to_FiducialDetector<GrayF32> detector=FactoryFiducial.squareImage(new ConfigFiducialImage(),ConfigThreshold.local(ThresholdType.LOCAL_SQUARE,10),GrayF32.class);
  double width=4;
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.setLensDistortion(lensDistortion);
  detector.detect(original);
  Graphics2D g2=input.createGraphics();
  Se3_F64 targetToSensor=new Se3_F64();
  for (int i=0; i < detector.totalFound(); i++) {
    System.out.println("String_Node_Str" + detector.getId(i));
    detector.getFiducialToCamera(i,targetToSensor);
    System.out.println("String_Node_Str");
    System.out.println(targetToSensor);
    VisualizeFiducial.drawLabelCenter(targetToSensor,param,"String_Node_Str" + detector.getId(i),g2);
    VisualizeFiducial.drawCube(targetToSensor,param,detector.getWidth(i),3,g2);
  }
  ShowImages.showWindow(input,"String_Node_Str",true);
}

Fixed version (ground truth):
public static void main(String[] args){
  String imagePath=UtilIO.pathExample("String_Node_Str");
  String patternPath=UtilIO.pathExample("String_Node_Str");
  String imageName="String_Node_Str";
  CameraPinholeRadial param=CalibrationIO.load(new File(imagePath,"String_Node_Str"));
  LensDistortionNarrowFOV lensDistortion=new LensDistortionRadialTangential(param);
  BufferedImage input=UtilImageIO.loadImage(imagePath,imageName);
  GrayF32 original=ConvertBufferedImage.convertFrom(input,true,ImageType.single(GrayF32.class));
  SquareImage_to_FiducialDetector<GrayF32> detector=FactoryFiducial.squareImage(new ConfigFiducialImage(),ConfigThreshold.local(ThresholdType.LOCAL_SQUARE,10),GrayF32.class);
  double width=4;
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.addPatternImage(loadImage(patternPath,"String_Node_Str",GrayF32.class),100,width);
  detector.setLensDistortion(lensDistortion);
  detector.detect(original);
  Graphics2D g2=input.createGraphics();
  Se3_F64 targetToSensor=new Se3_F64();
  Point2D_F64 locationPixel=new Point2D_F64();
  for (int i=0; i < detector.totalFound(); i++) {
    detector.getImageLocation(i,locationPixel);
    if (detector.hasUniqueID())     System.out.println("String_Node_Str" + detector.getId(i));
    if (detector.hasMessage())     System.out.println("String_Node_Str" + detector.getMessage(i));
    System.out.println("String_Node_Str" + locationPixel);
    if (detector.is3D()) {
      detector.getFiducialToCamera(i,targetToSensor);
      System.out.println("String_Node_Str");
      System.out.println(targetToSensor);
      VisualizeFiducial.drawCube(targetToSensor,param,detector.getWidth(i),3,g2);
      VisualizeFiducial.drawLabelCenter(targetToSensor,param,"String_Node_Str" + detector.getId(i),g2);
    }
 else {
      VisualizeFiducial.drawLabel(locationPixel,"String_Node_Str" + detector.getId(i),g2);
    }
  }
  ShowImages.showWindow(input,"String_Node_Str",true);
}