Weifang Zhang

26 papers B 1C 1Journal 21Unranked 3
YearRankTypeTitle / Venue / Authors
2026 J jnl
IEEE Trans. Medical Imaging
Yaozong Gao, Yiran Shu, Mingyang Yu, Yanbo Chen, Jingyu Liu, Shaonan Zhong, Weifang Zhang, Yiqiang Zhan, Xiang Sean Zhou, Xinlu Wang, Meixin Zhao, Dinggang Shen
2025 conf
IPMI (2)
Mingyang Yu, Yaozong Gao, Yiran Shu, Yanbo Chen, Jingyu Liu, Caiwen Jiang, Kaicong Sun, Weifang Zhang, Yiqiang Zhan, Xiang Sean Zhou, Shaonan Zhong, Xinlu Wang, Meixin Zhao, Dinggang Shen
2025 conf
MICCAI (5)
Mingyang Yu, Yaozong Gao, Yiran Shu, Yanbo Chen, Jingyu Liu, Caiwen Jiang, Kaicong Sun, Zhiming Cui, Weifang Zhang, Yiqiang Zhan, Xiang Sean Zhou, Shaonan Zhong, Xinlu Wang, Meixin Zhao, Dinggang Shen
2024 J jnl
PeerJ Comput. Sci.
Qianhan Zheng, Yu Gao, Mengqi Zhou, Huimin Li, Jiaqi Lin, Weifang Zhang, Xuepeng Chen
2023 J jnl
Sensors
Chengcheng Fu, Cheng Gao, Weifang Zhang
2023 conf
IEEM
Yazhou Li, Yanyun Ma, Wei Dai, Weifang Zhang
2023 J jnl
Reliab. Eng. Syst. Saf.
Ruoyu Liao, Yihai He, Tianyu Feng, Xiuzhen Yang, Wei Dai, Weifang Zhang
2023 J jnl
Reliab. Eng. Syst. Saf.
Ruoyu Liao, Yihai He, Jishan Zhang, Xin Zheng, Anqi Zhang, Weifang Zhang
2023 C conf
IPCCC
Huazhen Zhong, Fan Zhang, Yining Zhao, Weifang Zhang, Wenjie Xiao, Xuehai Tang, Liangjun Zang
2022 J jnl
Sensors
Xiaobei Liang, Jinyong Yao, Lei Luo, Wenzhao Zhu, Weifang Zhang, Yanrong Wang
2022 J jnl
J. Sensors
Bo Jin, Cunbo Lu, Feng Zhang, Weifang Zhang
2021 B conf
IWCMC
Shun Liu, Zhifei Li, Weifang Zhang, Yan Liang
2020 J jnl
IEEE Access
Yazhou Li, Wei Dai, Weifang Zhang
2020 J jnl
Sensors
Weifang Zhang, Meng Zhang, Yudong Lan, Yan Zhao, Wei Dai
2020 J jnl
CoRR
Shun Liu, Zhifei Li, Weifang Zhang, Yan Liang
2020 J jnl
Sensors
Yan Zhao, Dianyin Hu, Meng Zhang, Wei Dai, Weifang Zhang
2019 J jnl
IEEE Access
Xiaopeng Liu, Weifang Zhang, Xuerong Liu, Wei Dai, Guicui Fu
2019 J jnl
Sensors
Wei Dai, Xiangyu Wang, Meng Zhang, Weifang Zhang, Rongqiao Wang
2019 J jnl
Sensors
Xuerong Liu, Yuanming Xu, Ning Li, Xiangyu Wang, Weifang Zhang
2019 J jnl
Sensors
Weifang Zhang, Meng Zhang, Xiangyu Wang, Yan Zhao, Bo Jin, Wei Dai
2018 J jnl
Sensors
Weifang Zhang, Yingwu Li, Bo Jin, Feifei Ren, Hongxun Wang, Wei Dai
2018 J jnl
IEEE Access
Bo Sun, Meichen Yan, Qiang Feng, Yu Li, Yi Ren, Kun Zhou, Weifang Zhang
2018 J jnl
IEEE Access
Weifang Zhang, Tingzhu Jin, Weitao Lou, Wenli Li, Wei Dai
2017 J jnl
J. Sensors
Bo Jin, Weifang Zhang, Feifei Ren, Meng Zhang, Wei Dai, Yanrong Wang
2016 J jnl
Sensors
Jingjing He, Jinsong Yang, Yongxiang Wang, Haim Waisman, Weifang Zhang
2016 J jnl
Sensors
Jingjing He, Yibin Zhou, Xuefei Guan, Wei Zhang, Weifang Zhang, Yongming Liu
redb/extractors/decompiler/bninja/similarity/minhashcustom.py
← Index redb/extractors/decompiler/bninja/similarity/minhashcustom.py python
import numpy as np
import mmh3

class MinHashCustom:
    """
    DTO for an actual MinHash
    <minhash>: a binary sequence of packed int8/32 values
    <minhash_int>: the equivalent representation of <minhash> but as list of int8/32
    """

    _HASH_MAX = 0xFFFFFFFF
    _MINHASH_BITS = 32

    def getSignatureEntrySize(self):
        return 1 if self.MINHASH_BITS <= 8 else 4

    def __init__(self, function_addr=None, minhash_bytes=None, minhash_signature=None, minhash_bits=32):
        self.minhash = b""
        self.minhash_int = []
        if minhash_bits:
            self._MINHASH_BITS = minhash_bits
        if minhash_bytes and minhash_signature:
            raise ValueError("Can use only one keyword argument")
        if minhash_bytes:
            if self._MINHASH_BITS <= 8:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint8)
            else:
                minhash_signature = np.frombuffer(minhash_bytes, dtype=np.uint32)
            self.setMinHash(minhash_signature)
        elif minhash_signature:
            self.setMinHash(minhash_signature)

        self.shingler_composition = {}
        self.function_addr = function_addr

    def hasMinHash(self):
        return len(self.minhash) > 0

    def getMinHash(self):
        return self.minhash

    def getMinHashInt(self):
        return self.minhash_int

    def setMinHash(self, minhash_signature):
        self.minhash_int = [i % 2 ** self._MINHASH_BITS for i in minhash_signature]
        if self._MINHASH_BITS <= 8:
            self.minhash = np.array(self.minhash_int, dtype=np.uint8).tobytes()
        else:
            self.minhash = np.array(self.minhash_int, dtype=np.uint32).tobytes()

    def getComposition(self):
        return self.shingler_composition

    def scoreAgainst(self, other):
        return self.calculateMinHashScore(self.minhash, other.minhash, minhash_bits=self._MINHASH_BITS)

    @staticmethod
    def getHashMax():
        return MinHashCustom._HASH_MAX

    @staticmethod
    def hashData(data, seed) -> int:
        if isinstance(data, (str, bytes, bytearray)):
            return mmh3.hash(data, seed) & MinHashCustom._HASH_MAX
        elif isinstance(data, (list, tuple)):
            to_hash = "|".join(str(elem) for elem in data)
            return mmh3.hash(to_hash, seed) & MinHashCustom._HASH_MAX
        else:
            raise NotImplementedError(
                f"Type not supported for hashData: {type(data).__name__}"
            )

    @staticmethod
    def calculateMinHashScore(first, second, minhash_bits=32):
        if minhash_bits <= 8:
            first_np = np.frombuffer(first, dtype=np.uint8)
            second_np = np.frombuffer(second, dtype=np.uint8)
        else:
            first_np = np.frombuffer(first, dtype=np.uint32)
            second_np = np.frombuffer(second, dtype=np.uint32)
        return 100.0 * sum(first_np == second_np) / len(first_np)

    @staticmethod
    def calculateMinHashIntScore(first, second):
        score = 0
        num_hashes = len(first)
        if num_hashes:
            for index, part in enumerate(first):
                score += 1 if part == second[index] else 0
            return 100.0 * score / num_hashes
        return 0.0

    @property
    def MINHASH_BITS(self):
        return self._MINHASH_BITS