def extract_features_hahog( image: np.ndarray, config: Dict[str, Any], features_count: int) -> Tuple[np.ndarray, np.ndarray]: t = time.time() points, desc = pyfeatures.hahog( image.astype(np.float32) / 255, # VlFeat expects pixel values between 0, 1 peak_threshold=config["hahog_peak_threshold"], edge_threshold=config["hahog_edge_threshold"], target_num_features=features_count, use_adaptive_suppression=config["feature_use_adaptive_suppression"], ) if config["feature_root"]: desc = np.sqrt(desc) uchar_scaling = 362 # x * 512 < 256 => sqrt(x) * 362 < 256 else: uchar_scaling = 512 if config["hahog_normalize_to_uchar"]: # pyre-fixme [16]: `int` has no attribute `clip` desc = (uchar_scaling * desc).clip(0, 255).round() logger.debug("Found {0} points in {1}s".format(len(points), time.time() - t)) return points, desc
def extract_features_hahog(image, config): t = time.time() points, desc = pyfeatures.hahog(image.astype(np.float32) / 255, # VlFeat expects pixel values between 0, 1 peak_threshold=config['hahog_peak_threshold'], edge_threshold=config['hahog_edge_threshold'], target_num_features=config['feature_min_frames'], use_adaptive_suppression=config['feature_use_adaptive_suppression']) if config['feature_root']: desc = np.sqrt(desc) uchar_scaling = 362 # x * 512 < 256 => sqrt(x) * 362 < 256 else: uchar_scaling = 512 if config['hahog_normalize_to_uchar']: desc = (uchar_scaling * desc).clip(0, 255).round() logger.debug('Found {0} points in {1}s'.format(len(points), time.time() - t)) return points, desc